bcb中静态调用vc生成的dll,输出的类怎么用呀?

nalan1976 2003-09-05 11:52:33
vc生成的dll是一个directx的封装类,.h文件如下:

class __declspec(dllexport) CDXScreen
{
public:
CDXScreen();
~CDXScreen();
...
}

我用了bcb带的工具implib重新生成.lib文件,加入了bcb的项目中,并加入了上面的.h文件,再把.dll放入相应目录,编译时没有问题,可是连接时一碰到用到类里面东西的代码,就出错.比如:
g_pScreen = new CDXScreen();
时,就报
[Linker Error] Unresolved external 'CDXScreen::~CDXScreen()' referenced from D:\CVSHOME\PRODUCTS\MINIGAME2\MODULES\HALL\CPP\UNIT1.OBJ
[Linker Error] Unresolved external 'CDXScreen::CDXScreen()' referenced from D:\CVSHOME\PRODUCTS\MINIGAME2\MODULES\HALL\CPP\UNIT1.OBJ

有哪位大侠能够指点一下,谢谢!!!

...全文
42 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nalan1976 2003-09-09
  • 打赏
  • 举报
回复
好了,我用bcb又重编了一个dll,实在是搞不定,给分了.
kingcaiyao 2003-09-06
  • 打赏
  • 举报
回复
VC的调用方式默认采用_cdecl,这与BCB不同,所以你在将dll转换成lib时,需要带一个参数,可用implib -a *.lib *.dll试试
nalan1976 2003-09-05
  • 打赏
  • 举报
回复
有啊,都是很完整的
gloom 2003-09-05
  • 打赏
  • 举报
回复
你的类中没有CDXScreen的实现代码?
gloom 2003-09-05
  • 打赏
  • 举报
回复
我怀疑是VC的默认函数调用方式与BCB的默认函数调用方式不同引起的,而且VC喜欢给函数改名,
Behard 2003-09-05
  • 打赏
  • 举报
回复
可能是可以的

不过我曾试了一个星期都没有成功,就放弃了

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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