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的调用!
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的调用!
相关文章推荐
- GPU(CUDA)学习日记(二)续二------ VS2010 不同工程之间调用DLL
- GPU(CUDA)学习日记(二)--------VS2010不同工程之间调用DLL或者LIB
- GPU(CUDA)学习日记(二)续------ VS2010 不同工程之间调用DLL
- GPU(CUDA)学习日记(二)续------ VS2010 不同工程之间调用DLL
- GPU(CUDA)学习日记(二)--------VS2010不同工程之间调用DLL或者LIB
- 同一个C语言工程不同C文件之间的函数互相调用问题(二)
- 使用DLL进行不同语言之间的调用
- GPU(CUDA)学习日记(四)----------VS2010 + win7 32位 + CUDA 4.2 环境配置以及一些小问题的解决
- 使用DLL进行不同语言之间的调用
- 使用DLL进行不同语言之间的调用
- 使用DLL进行不同语言之间的调用
- GPU(CUDA)学习日记(四)----------VS2010 + win7 32位 + CUDA 4.2 环境配置以及一些小问题的解决
- 不同语言之间的DLL调用
- GPU学习日记(一)------VS2010下如何配置CUDA4.2
- 项目里不同版本之间调用DLL,引发的问题
- VS2010下,C++工程调用CUDA工程
- 使用DLL进行不同语言之间的调用(转)
- 同一个C语言工程不同C文件之间的函数互相调用问题(一)
- Cocos2d-x win7 + vs2010 配置(如何创建cocos2d-x工程,解决各种头文件包含错误、lib库引用错误 及dll链接错误)
- VS2010中利用CUDA对GPU进行直接开发