【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、效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章