跟大家分享乙個DLL匯出類的使用

2021-06-08 17:04:34 字數 1258 閱讀 9386

折騰了好幾個小時。

開發環境是:vs2010

1.首先建立了乙個空解決方案(mywork)

2.新增乙個mfc工程,主要用來測試動態庫(mymfctest)

3.然後建立乙個動態庫(mydlltest),勾上mfc標頭檔案使用,專案自動生成如下**

.h檔案是。其他**可以刪掉

#ifdef serialport_exports

#define serialport_api __declspec(dllexport)

#else

#define serialport_api __declspec(dllimport)

#endif

// 此類是從 mydlltest.dll 匯出的

class serialport_api cmydlltest ;

.cpp檔案是只保留如下**:

#include "stdafx.h"

#include "mydlltest.h"

#ifdef _debug

#define new debug_new

#endif

4.然後在類中新增乙個測試方法

.h檔案中宣告乙個 cstring test();

.cpp檔案中實現test方法**如下

cmydlltest::test()

在這個過程中發現 temp初始化那裡報錯,原因是屬性那裡要把字元改為多位元組。

5.debug生成,然後release生成

6.然後在mfc專案中在cmymfctest類中

#include "../mydlltest/mydlltest.h"包含標頭檔案

然後鏈結庫

#ifdef _debug

#pragma comment(lib,"../debug/mydlltest.lib")

#else

#pragma comment(lib,"../release/mydlltest.lib")

#endif

7.然後在initinstance方法中宣告類。然後使用方法test

debug生成的時候發現說使用外部符號,原因是在debug模式下的屬性---c++ ---**生成---執行庫,改為多執行緒dll(/md)

生成成功,斷點返回值正常

8。realse模式下生成也是報錯。原因與debug有所區別,在屬性中---c++ ---**生成---執行庫,要改為多執行緒(/mt)。配置屬性--常規--mfc的使用,改為 使用標準 windows 庫。生成成功,斷點返回值正常

乙個儲存過程的 事務模板 跟大家分享

if exists select from sysobjects where type p and name x begin drop procedure x end go 作者 alex yang 模組名稱 統計查詢 建立時間 2010 年月日 功能 按天生成 bbc 的對比報表 修改人 修改時間...

給大家分享乙個常用鍊錶類Clist

標頭檔案宣告如下 struct listnode declspec dllexport listnode createlistnode int value 建立鍊錶函式 declspec dllexport void connectlistnodes listnode pcurrent,listno...

又乙個發現,大家分享

微控制器教程,mcs51微控制器從零開始 微控制器教程,mcs51微控制器從零開始 第一講 初識微控制器 微控制器教程,mcs51微控制器從零開始 第二講 mcs 51微控制器簡述 微控制器教程,mcs51微控制器從零開始 第三講 微控制器相關常用名詞解釋 微控制器教程,mcs51微控制器從零開始 ...