求加载DLL的简单方法

Greg_han 2011-07-19 11:20:13
我制作一个test.dll文件。在C#下很容易加载。可是在网上看了一下关于C++加载dll的方法,真复杂,要写一大堆导出指令,还要有头文件,很烦人。有没有好的简单方法,只要几条语句就可以完成加载。就像C# 那样,先选择文件路径,在用 using test.dll
...全文
1320 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
Greg_han 2011-11-08
  • 打赏
  • 举报
回复
如何导出 类?
deping_chen 2011-07-25
  • 打赏
  • 举报
回复
C++生成和使用DLL不麻烦啊,这都嫌麻烦,编程中比这麻烦的太多了。
cppgp 2011-07-25
  • 打赏
  • 举报
回复
编译时指定.lib文件,不用在代码里加载DLL了,系统在需要时候自动加载。
qjzl2008 2011-07-25
  • 打赏
  • 举报
回复
动态加载也不麻烦,,,就那么几行代码就好啦
lanzhengpeng2 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 greg_han 的回复:]
我制作一个test.dll文件。在C#下很容易加载。可是在网上看了一下关于C++加载dll的方法,真复杂,要写一大堆导出指令,还要有头文件,很烦人。有没有好的简单方法,只要几条语句就可以完成加载。就像C# 那样,先选择文件路径,在用 using test.dll
[/Quote]

您呐,还是别做程序了!
不对,是什么都不要做,回家当猪一样的躺床上就行了.
samyou 2011-07-21
  • 打赏
  • 举报
回复
静态加载就可以了
zrnning 2011-07-20
  • 打赏
  • 举报
回复
学习了
shaotine_wu 2011-07-19
  • 打赏
  • 举报
回复
C++加载dll不麻烦的,动态加载就1楼的两个函数,要是LZ不愿意写,就直接用静态加载,一句代码都不要,操作起来也就两三步
nightkids_008 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dizuo 的回复:]
g_RF = LoadLibrary( "NetDevRF.dll" );

if (g_RF==0)
return false;

SetRFSB = (SETRFSB)GetProcAddress(g_RF, "SetRFSB");
[/Quote]
这个算动态里最简单的了
wtbike 2011-07-19
  • 打赏
  • 举报
回复
要简单的话,那就只能用静态加载了。
包含一下对应的头文件,然后引用相关的lib
  • 打赏
  • 举报
回复
静态加载的话连代码都不用写....
ryfdizuo 2011-07-19
  • 打赏
  • 举报
回复
这两个函数就够了。
ryfdizuo 2011-07-19
  • 打赏
  • 举报
回复
g_RF = LoadLibrary( "NetDevRF.dll" );

if (g_RF==0)
return false;

SetRFSB = (SETRFSB)GetProcAddress(g_RF, "SetRFSB");
Greg_han 2011-07-19
  • 打赏
  • 举报
回复
我的静态库构建好啦,在控制台的main函数下测试没问题,可是在窗体下的button事件函数中调用就报错:

错误 1 error LNK2028: 无法解析的标记(0A000015) "public: __clrcall LicenseFile::~LicenseFile(void)" (??1LicenseFile@@$$FQAM@XZ),该标记在函数 "private: void __clrcall ShowGenerator::Form1::btnGenerator_Click(class System::Object ^,class System::EventArgs ^)" (?btnGenerator_Click@Form1@ShowGenerator@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) 中被引用 ShowGenerator.obj

请问这是怎么回事?
Louistao 2011-07-19
  • 打赏
  • 举报
回复
工具->选项->项目和解决方案->VC++目录
库文件
Greg_han 2011-07-19
  • 打赏
  • 举报
回复
我是通过两条语句
#include "abc.h"
#pragma comment(lib,"libact.lib")
连接静态库的。
不使用这两句,我真的连不上静态库,你们说可以不写代码就行,请问如何设置vs2008的项目属性?

xunxun 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 loaden 的回复:]
引用 24 楼 xunxun1982 的回复:

引用 23 楼 loaden 的回复:
http://sourceforge.net/apps/trac/mingw-w64/wiki/gendef
找到介绍了。
不知道能否用于VC?

可以使用。

什么时候编译个MinGW64版本?
http://code.google.com/p/pcxprj/
[/Quote]
我的就是使用的MinGW64 CRT啊,可能没写清楚吧
我里面已经包含gendef
shaotine_wu 2011-07-19
  • 打赏
  • 举报
回复
没有LIB写个def文件就可以了
老邓 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 xunxun1982 的回复:]

引用 23 楼 loaden 的回复:
http://sourceforge.net/apps/trac/mingw-w64/wiki/gendef
找到介绍了。
不知道能否用于VC?

可以使用。
[/Quote]
什么时候编译个MinGW64版本?
http://code.google.com/p/pcxprj/
xunxun 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 loaden 的回复:]
http://sourceforge.net/apps/trac/mingw-w64/wiki/gendef
找到介绍了。
不知道能否用于VC?
[/Quote]
可以使用。
加载更多回复(17)

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧