游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4085|回复: 18

做*.dll的???~~

[复制链接]

21

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
发表于 2004-10-22 13:12:00 | 显示全部楼层 |阅读模式
如何用C++??*.dll?
?和??一般的*.exe有何分?e?
如果知道如何??*.dll的?r候...如何可做到在?行*.exe?r...?入*.dll?行... [em5]

4

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2004-10-22 14:42:00 | 显示全部楼层

Re:做*.dll的???~~

在你要导出的函数或类之前加上__declspec(dllexport)就可以了,具体程序和.exe编程一样,
__declspec(dllexport) returnType functioNname(Params){...}
class __declspec(dllexport) className{...};
要在.exe运行时加载.dll要用到LoadLibrary(),加载后,还要用GetProcAddress()获取dll中的函数
这样就可以正常调用了

21

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
 楼主| 发表于 2004-10-22 14:57:00 | 显示全部楼层

Re:做*.dll的???~~

DarkPhenix...
如果dll中有个函数是void test() {...}
__declspec(dllexport) void test() {...} ?
用LoadLibrary()?r...如何加载指定*.dll ?
如?*.dll叫test.dll ...那?...如何

4

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2004-10-22 15:06:00 | 显示全部楼层

Re:做*.dll的???~~

Yes,
对于LoadLibrary()先给个头文件:HMODULE LoadLibrary(LPCTSTR lpFileName);
如果你的dll名为test.dll那就用HMODULE hModule = LoadLibrary("test.dll");
在给你个FARPROC GetProcAddress( HMODULE hModule, LPCSTR lpProcName);
使用完后,调用BOOL FreeLibrary(HMODULE hModule);释放这个dll

21

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
 楼主| 发表于 2004-10-22 15:59:00 | 显示全部楼层

Re:做*.dll的???~~

那?GetProcAddress()呢?

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-10-22 16:43:00 | 显示全部楼层

Re:做*.dll的???~~

用来动态获得DLL里函数的地址指针的

21

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
 楼主| 发表于 2004-10-22 16:49:00 | 显示全部楼层

Re:做*.dll的???~~

?]事了...我miss看了

21

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
 楼主| 发表于 2004-10-22 16:54:00 | 显示全部楼层

Re:做*.dll的???~~

如果test.dll中有个
__declspec(dllexport) void test() {...}

之後...
HMODULE hModule = LoadLibrary("test.dll");
FARPROC GetProcAddress( HMODULE hModule, "test()");
就ok?用test.dll中的test()??

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-10-22 17:24:00 | 显示全部楼层

Re:做*.dll的???~~

是GetProcAddress(hModule,"test");

没有括号的

21

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
 楼主| 发表于 2004-10-22 18:32:00 | 显示全部楼层

Re:做*.dll的???~~

如果是test是
void test(int n) {...}
那又如何...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-22 23:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表