描述:
我现有一Activex Dll文件,就是没窗口那种,在asp中我用
set objtst=Server.CreateObject("MyObj.ObjName")后可以访问其中的方法如
Response.Write objtst.GetObjName()在浏览中可以显示正确值.
但是在VC中我用#import "myobj.dll" no_namespace
然后按照一般com使用方法进行调用时始终出错。
_ObjName *pIS = NULL;
CoInitialize(NULL);
CoCreateInstance(
__uuidof(ObjName),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(_ObjName),
(void**)&pIS);//经查看pIS为NULL,所以会出错
_bstr_t bstr=pIS->GetDevName();
用ClassWizard的导入生成类的方法后调用GetObjName()方法后什么也不返回.
所以特请教各位Activex Dll在vc中的正确使用方法。在下先谢再等。
解决方案1:
CString strName;
ObjName p;
CLSID clsid;
CLSIDFromProgID(_T("YourObj.ObjName"),&clsid);
p.CreateDispatch(clsid);
strName=p.GetObjName();
#import "path+myobj.dll" no_namespace
HRESULT hr = CoCreateInstance(
__uuidof(ObjName),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(_ObjName),
(void**)&pIS);
if(FAILED(hr))
{
//看看hr的值就知道错在哪里了
}
您可能想查找下面的文章:
- 用ole将word嵌入到程序中,并划好了按钮,下一步想通过按钮控制这个嵌入的word,请教各位前辈
- 请教各位,“金山卫士”用的是不是COM技术
- MSHTML的CoCreateInstance失败,请教各位,先谢谢了。
- vs2005做视频播放器-请教各位前辈,小弟很菜,不要笑话我。给四十分啊
- 请教各位高手,我在全局主线程中怎样才能禁止DLG类中的一个按钮状态?
- 请教各位大虾们,我用Winsocket写了一个多线程的通讯程序,在FD_READ、FD_WRITE事件发生时,如何知道用那一个Socket去读写。
- 请教各位大哥:在一对多通信中,我有多线程来处理多个连接,请问用什么同步方法比较好,采样为22k
- 请教各位大哥:在用定时器得时候,如果设置定时为1分钟(既一分钟运行一次子程序),运行一次子程序得时间超过1分钟,会怎么样?
- 请教各位:网上哪里有vcguru的东东可以下载
- 请教各位大侠关于dll文件合并的问题,解决立即结帐