【WinCE】WinCE设备动态链接库的制作与调用
·
环境
VS版本:VS2008
WinCE版本:WinCE6.0
创建应用程序
1、新建项目->智能设备->智能设备应用程序,填入项目名称 WinceDllTest 。

2、选定 CHSINT SDK For WinCE 6.0 作为当前项目的 Platform SDK。

3、应用程序类型选择 基于对话框,MFC的使用选择 在共享DLL中使用MFC。

4、点击 完成。

创建动态链接库
1、新建项目->智能设备->Win32智能设备项目,填入项目名称 Calc。

2、选定 CHSINT SDK For WinCE 6.0 作为当前项目的 Platform SDK。

3、应用程序类型选择 DLL,勾选 导出符号。

4、完成。
代码
1、以WinceDllTest工程为启动项目,组成解决方案。依赖项目为 Calc。

2、Calc.h 文件
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 CALC_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// CALC_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef CALC_EXPORTS
#define CALC_API __declspec(dllexport)
#else
#define CALC_API __declspec(dllimport)
#endif
// 此类是从 Calc.dll 导出的
class CALC_API CCalc {
public:
CCalc(void);
// TODO: 在此添加您的方法。
public:
int Add(int x, int y);
};
//extern CALC_API int nCalc;
//CALC_API int fnCalc(void);
3、Calc.cpp
// Calc.cpp : 定义 DLL 应用程序的入口点。
//
#include "stdafx.h"
#include "Calc.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
// 这是导出变量的一个示例
//CALC_API int nCalc=0;
// 这是导出函数的一个示例。
//CALC_API int fnCalc(void)
//{
// return 42;
//}
// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 Calc.h
CCalc::CCalc()
{
return;
}
int CCalc::Add(int x, int y)
{
return (x + y);
}
4、WinceDllTestDlg.h
#include "Calc.h"
#pragma comment(lib, "Calc.lib")
5、WinceDllTestDlg.cpp
void CWinceDllTestDlg::OnBnClickedButtonCalc()
{
CCalc Calc;
CString str;
int z = Calc.Add(1, 2);
str.Format(_T("%d"), z);
GetDlgItem(IDC_EDIT_RESULT)->SetWindowText(str);
}
6、效果

更多推荐


所有评论(0)