如何导入导出dll文件中的函数
(1)dll文件中函数(或变量)的声明
extern CVISION_API int ncvision;
extern "C" CVISION_API int _stdcall fncvision(void);
(2)函数的实现
CVISION_API int ncvision=0;
// 这是导出函数的一个示例。
extern "C" CVISION_API int _stdcall fncvision(void)
{
return 42;
}
(3)以上两步是在你新建dll项目时,系统为你做好了的,你只要依照这个格式来写你自己的函数就可以了。
写好后,保存,编译一下,通过后,dll文件就算生成了,将.dll文件和.lib文件一同拷入到你的应用程序的debug目录下,就可在应用程序中使用了。
(4)使用前要对函数进行导入(dll文件拷到debug目录下只能说明有这个dll
存在,但还要通过声明来说明这个dll与这个应用程序有关系)
下面是在你的应用程序中导入dll文件中的函数。
[DllImport("cvision.dll", EntryPoint = "fncvision")]
public static extern int fncvision();
(5)直接在你的应用程序中想调用函数的地方直接调用函数即可。
如何调试DLL程序
思路:写个程序来调用你这个dll,就可以调试dll了
具体实施方案:
做个EXE项目来调用这个DLL。
(1)把两个项目放在同一个workspace里面,将输出路径设置为同一目录(在项目属性——>常规中的“输出目录”中指定相同路径即可)
(2)以DLL为启动项目,设置DLL的项目属性。具体办法:
vs2008 项目->属性->调试
命令:rundll32.exe ——>你编写的项目生成的exe文件名称
参数: DllLib.dll test() //空格前面是你编写的dll文件名称,空格后面test()是导出函数
工作目录:dll的生成目录
(3)设断点,然后调试就可以了。