静态调用怎么老出错?

土豆薯条 2003-08-26 09:38:13
我写了一个动态连接库,里面有一个函数Setb(char,int,char),有一个头文件;
我现在要调用,我在调用文件里加入了*.h.用implib生成了*.lib;
但编译的时候老出现[Linker Error] Unresolved external 'Setb' referenced from D:\调用\UNIT1.OBJ
这是怎么回事?
...全文
43 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
土豆薯条 2003-09-02
  • 打赏
  • 举报
回复
我使用了tdump,然后敲入命令tdump my.dll a.txt ,出现了,但我怎么看a.txt?
Old Executable Header

DOS File Size 18C00h (101376. )
Load Image Size 210h ( 528. )
Relocation Table entry count 0000h ( 0. )
Relocation Table address 0040h ( 64. )
Size of header record (in paragraphs) 0004h ( 4. )
Minimum Memory Requirement (in paragraphs) 000Fh ( 15. )
Maximum Memory Requirement (in paragraphs) FFFFh ( 65535. )
File load checksum 0000h ( 0. )
Overlay Number 001Ah ( 26. )

Initial Stack Segment (SS:SP) 0000:00B8
Program Entry Point (CS:IP) 0000:0000


Portable Executable (PE) File

Header base: 00000200

CPU type 80386
Flags 210E [ executable backwards 32bit library ]
DLL flags 0000 [ ]
Linker Version 5.0
Time stamp 3F53F2C8 : Tue Sep 02 09:30:48 2003
O/S Version 4.0
User Version 0.0
Subsystem Version 4.0
Subsystem 0002 [ Windows GUI ]
Object count 00000007
Symbols offset 00000000
Symbols count 00000000
Optional header size 00E0
Magic # 10B
Code size 00012000
Init Data size 00008000
Uninit Data size 00000000
Entry RVA 00001000
Image base 00400000
Code base 00001000
Data base 00013000
Object/File align 00001000/00000200
Reserved 00000000
Image size 00021000
Header size 00000600
Checksum 00000000
Stack reserve/commit 00000000/00000000
Heap reserve/commit 00100000/00001000
Number interesting RVAs 00000010
。。。。。。。。。。。。。。。
土豆薯条 2003-09-02
  • 打赏
  • 举报
回复
还是不对,一些第三方的应用?在那里有啊
土豆薯条 2003-09-02
  • 打赏
  • 举报
回复
extern "C" __declspec(dllexport) int _stdcall Setb(char *,int,char *);
改为这样的就对了,int在前是什么意思?
TR@SOE 2003-08-29
  • 打赏
  • 举报
回复
最好是用一些第三方的应用看看你的DLL中这个导出的函数到底叫什么名字。
windlyzhang 2003-08-29
  • 打赏
  • 举报
回复
改为:
extern "C" __declspec(dllexport) int _stdcall Setb(char *,int,char *);

试试!

并且在实现的cpp文件中加入:#pragma package(smart_init),
jiangchun_xn 2003-08-29
  • 打赏
  • 举报
回复
#progmma link "*.lib"
TopCat 2003-08-26
  • 打赏
  • 举报
回复
如果你的声明没有定义,或者参数不对,DLL里将不会导出这个函数,这时也有可能出这个问题的。你最好用View Dependence或者tdump之类的看看DLL里到底有没有这个函数。
土豆薯条 2003-08-26
  • 打赏
  • 举报
回复
我在头文件里加入了
extern "C" __declspec(dllexport) _stdcall int Setb(char *,int,char *);
这样的说明了?这个是什么错误?
编译失败 2003-08-26
  • 打赏
  • 举报
回复
你那個函數怎麽定義的,有沒有extern "C"啊

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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