GPU(CUDA)学习日记(二)续二------ VS2010 不同工程之间调用DLL

来源:互联网 发布:查找python安装目录 编辑:程序博客网 时间:2024/05/29 19:06

    首先,感谢http://ironurbane.iteye.com/blog/421954 文章,让我明白了不同工程之间调用DLL的步骤和一些需要注意的地方:

1、生成DLL,需要.def文件的编辑,生成引入库lib文件,其中的格式可以直接写为:

EXPORTS  
Rotation1 @1

其中,Ritation为函数名,我的dll中的入口函数,@1代表第一个执行。此时的操作均在分工程中进行。

2、在主工程中,生成的DLL,利用HMODULE  Affinegpu=LoadLibrary("Affine_d.dll");来加载进入;

同时,需要添加#include Affine_m.h"头文件。

3、同时,在主工程中,需要在“库目录”下,找到“Affine_d.lib”,同时,用“链接库”中的“输入”项加入“Affine_d.lib”。

4、在主函数中,需要首先获得DLL中函数的地址,然后再进行调用,具体见代码:

  typedef void (_stdcall * Rotation)();
  Rotation _rotation;
  _rotation = (Rotation)GetProcAddress(Affinegpu, "Rotation1 ");

其中,首先声明一个空的函数指针Rotation ,然后通过GetProcAddress得到DLL中函数Rotation1的地址;

最后,通过  

if (_rotation !=NULL)
  {
   Rotation1();

  }

即可完成整个DLL的调用!

 

 

原创粉丝点击