一个简单的dll问题,急等

linkaihui 2005-08-22 12:08:44
我要修改一个三维树的建模程序,树的建模用到我师兄编写的动态库
我现在想修改其中的一个函数,可是我仅仅是把动态库的程序重新编译一遍,没做任何修改,把生成了dll和lib拷到三维树程序替换原来的dll和lib就出现了错误
错误的原因是
Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class _STL::basic_string<char,class _STL::char_traits<char>,class _STL::allocator<char> > const __thiscall ETEngine::CETEngine::GetStemTextureFilename(void)const "
(__imp_?GetStemTextureFilename@CETEngine@ETEngine@@QBE?BV?$basic_string@DV?$char_traits@D@_STL@@V?$allocator@D@2@@_STL@@XZ)
Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class _STL::basic_string<char,class _STL::char_traits<char>,class _STL::allocator<char> > const __thiscall ETEngine::CETEngine::GetLeafTextureFilename(void)const "
(__imp_?GetLeafTextureFilename@CETEngine@ETEngine@@QBE?BV?$basic_string@DV?$char_traits@D@_STL@@V?$allocator@D@2@@_STL@@XZ)
../bin/Debug/EasyTree.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
没有替换之前运行ok,不知道什么问题请高手帮忙解答一下
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DentistryDoctor 2005-08-22
  • 打赏
  • 举报
回复
他已经修改了函数原型?那么同时替换.h.
newbiestar 2005-08-22
  • 打赏
  • 举报
回复
你看看这两个符号在你的Dll工程里面的声明/定义变化了没有

你和你师兄使用的编译器是不是一样,引入了STL以后的代码在VC++6和VC++7上面有很大的差异
newbiestar 2005-08-22
  • 打赏
  • 举报
回复
看你更改发生在什么等级上了,你使用lib+dll的组合的话,应该是隐式加载DLL的,这样的话如果你修改的是接口,包含的头文件也是需要修改的。

如果仅仅是修改函数的内容么,一般来说只要更新lib和dll就可以了
linkaihui 2005-08-22
  • 打赏
  • 举报
回复
我这是用VC6.0的编译器
请问 newbiestar我如果想要更改动态库里的内容,是不是只要将重新编译过的lib与dll文件替换就行了
newbiestar 2005-08-22
  • 打赏
  • 举报
回复
你用dumpbin看看lib里面的内容,主要是看看那两个函数对应的符号是什么,如果那两个符号不对了,链接肯定是没办法完成的
linkaihui 2005-08-22
  • 打赏
  • 举报
回复
编译器是一样的!
我也没有修改动态库的内容,只是重新编译了一次,把新生成的动态库替换原来的,就出现这些问题了

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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