描述:
现有一个别人写好的组件,只有一个dll文件,名称为UT.dll,目录为d:\UTSms\UT.dll,并已注册.
当在vc调用该组件时用#import "d:\UTSms\UT.dll" using namespace UTLib;
我想知道在vc调用组件时必须指定dll文件的路径马?(组件不放在系统目录或程序当前目录)
有没有其他办法加载组件?
解决方案1:
还有一种方式:
GUID CLSID_MySvr;
hResult=CoInitialize(NULL);
if(FAILED(hResult))
{
MessageBox("Could not Initialize COM.","MessageBox",MB_OK);
return ;
}
hResult=::CLSIDFromProgID(L"Mysvr.ServerObj",&CLSID_MySvr);
if(hResult!=S_OK)
{
MessageBox("Could not Initialize COM.","Error Message",MB_OK);
return ;
}
hResult=CoCreateInstance(CLSID_MySvr,NULL,CLSCTX_INPROC_SERVER,IID_IUnknown,(void **)&pIUnknown);
if(FAILED(hResult))
{
MessageBox("Could not Create a new RS232Srv Object.","Error Message",MB_OK);
return ;
}
hResult=pIUnknown->QueryInterface(IID_IBaseIO,(void **) &m_IBaseIO);
if(FAILED(hResult))
{
MessageBox("Could not Create IBaseIO.","Error Message",MB_OK);
return;
}
hResult=m_IBaseIO->BiuldNewDataioObject(&m_bstrSvrName);