dll的类导入、导出的问题
我在一个.cpp文件中导出了以下类:
#include <MProcess.HPP>
#include <MThread.HPP>
class _export MProcess;
class _export MThread;
用VC的工具Dependency Walker查看生成的.dll
@$xp$7MThread
@$xp$8MProcess
@MProcess@
@MThread@
现在,我要使用该.dll中的这些类,请问怎么导入呢?
静态?动态?
[解决办法]
使用该.dll的工程如果是bcb工程
将只能“静态”。
首先需要在BCB的项目中加入输入接口库(import library),打开工程项目,使用BCB View|Project Manager打开项目列表,向项目中加入接口库(*.lib)。
其次加入dll头文件中该类声明。
注意__declspec(dllimport)代替__declspec(dllexport)
[解决办法]
我记得 似乎 导出类只能使用静态方式调用;
静态调用就是直接把DLL的类文件头包含到你的新的工程;;
__declspec(dllimport) class __stdcall YourDllClass {
public:
YourDllClass();
......
};
[解决办法]
当然别忘了:使用 $BCB path\Bin\implib.exe 生成 Lib 文件,加入到工程文件中