dll 编译问题 请教

happyzsl 2003-06-09 06:47:27
新建一个DLL工程:
new 单元unit2.cpp文件,内容如下:

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
#include "ADODB.hpp"

//---------------------------------------------------------------------

#pragma package(smart_init)
TADOConnection *gADOConn;

//---------------------------------------------
int Init()
{
gADOConn = new TADOConnection(Application);
return 0;
}
//-------------------------------------------

int __stdcall Call()
{
Init();
return 0;
}


头文件如下:
//-------------------------------------------------------------------

#ifndef Unit2H
#define Unit2H
//-------------------------------------------------------------------
int Init();
extern "C" __declspec(dllexport) int __stdcall Call();
#endif


编译后出现错误:
[Linker Error] Unresolved external 'Adodb::TADOConnection::' referenced from E:\T1\UNIT2.OBJ
[Linker Error] Unresolved external '__fastcall Adodb::TADOConnection::TADOConnection(Classes::TComponent *)' referenced from E:\T1\UNIT2.OBJ


请问是什么原因?谢谢!
...全文
27 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingcaiyao 2003-06-09
  • 打赏
  • 举报
回复
在dll的入口点加入初始化COM库看看:
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
::CoInitialize(NULL);
break;
case DLL_PROCESS_DETACH:
::CoUninitialize();
break;
}
return 1;
}
happyzsl 2003-06-09
  • 打赏
  • 举报
回复
以前我也是这么写的,都好好的。前两天要给系统再增加个功能,活见鬼了,死活就是编译过不去。
happyzsl 2003-06-09
  • 打赏
  • 举报
回复
试了,但还是同样的错误。能否再支几招?
这个问题困扰了我好几天了。
zbc 2003-06-09
  • 打赏
  • 举报
回复
你把#include "ADODB.hpp"改为include<ADODB.hpp>,然后放到头文件中看看

13,825

社区成员

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

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