您的位置:首页 > 其它

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

2012-08-01 20:15 323 查看
首先,感谢/article/4490678.html 文章,让我明白了不同工程之间调用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的调用!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: