您的位置:首页 > 编程语言 > VB

急问!急问!vc调用vb做的包含窗体的COM出错!

2004-09-11 14:54 435 查看
新手上路不足之处请谅解!我在做项目的时候使用vb做包含窗体的com组件给vc调用出现问题。为了方便大家理解我将问题简化如下:

我用VB写了一个简单的COM组件tempdll.dll其中包含一个类 option 和一个窗体 Form1 代码如下:

类 option 的方法 showform

Public Function showform() As Integer
Form1.Show
Showform= 1
End Function

窗体 Form1 中不含任何代码
用VB调用一切正常,但是别人VC7.0中调用则出现问题

vc调用com的主要代码如下:
……
int a ;
HRESULT hresult;
CLSID clsid;

CoInitialize(NULL);

hresult=CLSIDFromProgID(OLESTR("tempdll.option"), &clsid);
_option *t;

hresult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(_option),(LPVOID *) &t);
if(FAILED(hresult))
{
AfxMessageBox("初始化服务组件失败");
return;
}

a=t->showform();
if (a ==1) //编译可以通过,运行后该行出现异常。说“此代码调用了另一个函数,当该函数执行完了后,这将是要执行的下一行”
MessageBox("ok"," ",MB_OK|64);
……

我将“showform” 中的代码 Form1.Show 换成
MsgBox "show" 则一切正常。也就是说,只要调用显示窗体的方法就会出错。
难道COM中不能加窗体吗?可我在VB中显示得很好呀!

请高手指教!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: