环境:VC++6.0
在编写COM时(没有窗体),需要调用VB编写的OCX控件。
现在的状态:
通过菜单中的程序-〉向程序中追加->追加控件...
把想要得DialogCtl.ocx插入到程序里面,并且也生成了相应的类,.h与.cpp文件。
ocx的功能:
DisplayCondition (long nMsgId)//传入一个ID,根据ID显示对话框
EraseCondition()   // 取消现实的对话框代码实现:
IdExternalDeviceCDlgControl cCDlgCtl;
cCDlgCtl.DisplayCondition(31815);执行时弹出错误。
请问各位高手
这种调用方式是不是错误的?
如何调用呢?是否需要初始化?
着急中!请帮忙解决,谢谢!
如果有实例就更好了
如果解决,立即给分!.

解决方案 »

  1.   

    根据ID显示对话框id有没有具体的要求,随便填吗?
      

  2.   

    根据输入的ID,查找数据库,找出对应的文字列。
    例如:
    ID 5182
    对应弹出的状态对话框里面显示的文字: 正在载入,请稍等!
      

  3.   

    应该没有错误,在VB环境下调用是正常的。
    现在的问题是:在一个没有窗体的com下,去掉用这个vb编写的ocx
      

  4.   

    IdExternalDeviceCDlgControl   cCDlgCtl; 
    cCDlgCtl.Create(...);
    cCDlgCtl.DisplayCondition(31815); 
      

  5.   

    楼上的,这个create函数,在调试时也用过,如下:
    nRelt = cCDlgCtl.Create(NULL,WS_POPUP,rect,NULL,100);
    由于这是个没有窗体的com控件,而调用的ocx却要显示一个状态对话框,
    所以第四个参数(CWnd* pParentWnd),应该填什么呢?
    在执行上面的cCDlgCtl.Create(NULL,WS_POPUP,rect,NULL,100);
    时,产生错误。
      

  6.   

    上面执行错误时,错误信息是什么?是一个ASSERT吗?
      

  7.   

    错误代码:
    Warning: calling DestroyWindow in CWnd::~CWnd; OnDestroy or PostNcDestroy in derived class will not be called.
      

  8.   

    例外処理VCTest.exe,产生: (KERNEL32.DLL)0xC000008F: Float Inexact Result。
      

  9.   

    更多的代码?
    错误代码吗?
    主要就是这些了,还有一些是如:C:\WINDOWS\system32\wsock32.dll,C:\WINDOWS\system32\ws2_32.dll','C:\WINDOWS\system32\ws2help.dll,'C:\WINDOWS\system32\msvcp60.dll,C:\WINDOWS\system32\mswsock.dll,C:\WINDOWS\system32\dnsapi.dll,C:\WINDOWS\system32\winrnr.dll,C:\WINDOWS\system32\wldap32.dll,C:\WINDOWS\system32\mswsock.dll,C:\WINDOWS\system32\winrnr.dll,C:\WINDOWS\system32\wldap32.dll,C:\WINDOWS\system32\rasadhlp.dll,C:\Program Files\Common Files\System\ado\msado15.dll,C:\WINDOWS\system32\msdart.dll',C:\WINDOWS\system32\comdlg32.dll,C:\WINDOWS\system32\xpsp2res.dll,C:\Program Files\Common Files\System\Ole DB\oledb32.dll,C:\Program Files\Common Files\System\Ole DB\oledb32r.dll,C:\WINDOWS\system32\msjetoledb40.dll,C:\WINDOWS\system32\msjet40.dll,C:\WINDOWS\system32\mswstr10.dll,C:\WINDOWS\system32\msjter40.dll,C:\WINDOWS\system32\msjint40.dll,C:\WINDOWS\system32\mswdat10.dll,C:\WINDOWS\system32\comsvcs.dll',C:\WINDOWS\system32\colbact.dll',C:\WINDOWS\system32\mtxclu.dll' ,'C:\WINDOWS\system32\clusapi.dll' ,,'C:\WINDOWS\system32\resutils.dll' ,'C:\WINDOWS\system32\userenv.dll' ,'C:\WINDOWS\system32\mswdat10.dll','C:\WINDOWS\system32\msjtes40.dll','C:\WINDOWS\system32\vbajet32.dll' ,'C:\WINDOWS\system32\expsrv.dll'等载入了,但没有发现适合的符号。
      

  10.   

    你说vctest.exe产生错误,堆栈信息呢?是不是vctest.exe本身的错误?
      

  11.   

    感谢sjdev地回答,好像不是,我只是建立一个一个简单的功能,估计应该不是vctest.exe本身的错误。
    thread 0xEA4 終了、終了code゙ 0 (0x0)。
    thread 0xEA8 終了、終了code゙ 0 (0x0)。
    thread 0xEA0 終了、終了code 0 (0x0)。
    thread 0xEB0 終了、終了code 0 (0x0)。
    thread 0xEB4 終了、終了code 0 (0x0)。
    thread 0xEB8 終了、終了code 0 (0x0)。'C:\Program Files\VSResizer\Control\Vsocx6.ocx' ,'C:\WINDOWS\system32\msi.dll' ,'C:\Program Files\FujiFilm\IIP\System\Threed20.ocx' ,'C:\WINDOWS\system32\winmm.dll'已经载入,但是没有发现适合的符号。
    例外処理VCTest.exe,产生:   (KERNEL32.DLL)0xC000008F:   Float   Inexact   Result。这就是上面所有的错误。
    再次谢谢回答!
      

  12.   

    你的控件事不是必须依附在窗体上,要是那样的话 那就玩了
    com里是没有窗体的 还是想别的办法吧