在BCB中使用com的一个问题!!!(sql-dmo)

jerrymousenet2 2003-08-24 09:07:20
//头文件中
#include <sqldmoid.h>
#include <sqldmo.h>

LPSQLDMOSERVER m_pSQLServer;
//cpp文件中
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
if (!InitSQLServer())
return;
}

BOOL TfrmMain::InitSQLServer()
{
HRESULT hr;

if FAILED(hr = CoInitialize (NULL))
{
MessageBox(NULL, TEXT("CoInitialize Failed"), TEXT("Error"), MB_OK);
return FALSE;
}

if FAILED(hr = CoCreateInstance (CLSID_SQLDMOServer, NULL, CLSCTX_INPROC_SERVER,
IID_ISQLDMOServer, (LPVOID*)&m_pSQLServer))
{
MessageBox(NULL, TEXT("Sever: CoCreateInstance Failed"), TEXT("Error"), MB_OK);
return FALSE;
}
return TRUE;
}
编译通过,但是,Build时会报以下错误。
[Linker Error] Unresolved external '_IID_IWSQLDMOServer' referenced from Z:\SETUP\POSSETUP\BCB\SETUPSERVER\MAINFORM.OBJ
[Linker Error] Unresolved external '_CLSID_SQLDMOServer' referenced from Z:\SETUP\POSSETUP\BCB\SETUPSERVER\MAINFORM.OBJ
同样的程序在VC中运行正常。现要转成BCB。难道还要link特别的程序库吗?
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjqyb 2003-08-24
  • 打赏
  • 举报
回复
sorry!!!
用tlibimp转
jerrymousenet2 2003-08-24
  • 打赏
  • 举报
回复
由于sqldmo.dll是com注册组件,应该不用加入*.lib也行的吧.不过我按上面的方法试了,并加入到项目中,问题还是存在?
zjqyb 2003-08-24
  • 打赏
  • 举报
回复
implib sqldmo.lib SQLDMO.dll
然后加入项目
jerrymousenet2 2003-08-24
  • 打赏
  • 举报
回复
cpp文件中得:#include <olectl.h>
jerrymousenet2 2003-08-24
  • 打赏
  • 举报
回复
用tlibimp转的话,不能输出*.lib文件,可以转成功,但是就得改变调用方式了。

703

社区成员

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

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