求Dll中加入对话框的程序,要求能在VB中调用,谢谢在线等待,立即给分

解决方案 »

  1.   

    http://www.vckbase.com/code/listcode.asp?mclsid=13&sclsid=1303
      

  2.   

    请发到我邮箱中,谢谢 
    [email protected]
      

  3.   

    这个dll在VB中运行有些错误,就是Dll中调用的窗口退出时,出现错误提示,然后整个程序退出,请问怎样解决?
      

  4.   

    用VB建一个Active DLL工程不就搞定了吗?
      

  5.   

    调用约定错误,你把DLL中导出的函数加上WINAPI试试看吧。
      

  6.   

    一、在函数里面加上AFX_MANAGE_STATE(AfxGetStaticModuleState());二、函数前面写上_stdcallint _stdcall mydllfun()
    {
       AFX_MANAGE_STATE(AfxGetStaticModuleState());
       CDlg dlg;
       dlg.DoModal();
    }
      

  7.   

    就是这样的:extern "C" _declspec(dllexport) void ShowDlg()
          或者:WINAPI void ShowDlg()   //且在.def文件中导出了。
      

  8.   

    我的导出函数:
    void WINAPI ShowDlg()
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    CDlg test;
    test.DoModal ();
    }
    结果就是在VB调用完成后出错“调用约定错误”。
      

  9.   

    to once168
    为什么用LONG可以通过,请赐教。
      

  10.   

    返回值用void的 在VB不要用declare function,而应该用declare sub
      

  11.   

    很久没有用过VB了,现在只能作一些零星回忆了,可能有些地方说错了,大家也不要见怪
    基本是这样的:
    1.VB中基于COM的
    2.VB的对返回值是有要求了,分两类
       a.COM类,其在非VB中返回值是HRESULT,显示在VB中的返回值是[out,retval]的值(这个可为空),所以对于COM类一定要返回值(这是自动化的要求)
       b.对于一般的导出函数也要有返回值,VB只作检查不起多大作用,详细原因我忘了
    3.最后,建义是每个函数均要有返回值,且返回值最好是自动化类型,即VB支持的类型(注VB的Bool好像True==-1,false==0这与很多语言不一样)