首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

为什么动态库 中的函数无法加载

2012-02-07 
求助:为什么动态库 中的函数无法加载动态库代码:externC __declspec(dllexport)HWND__stdcallCreateCW(H

求助:为什么动态库 中的函数无法加载
动态库代码:
extern   "C "   __declspec(dllexport)   HWND   __stdcall   CreateCW(HWND);
int   WINAPI   DllEntryPoint(HINSTANCE   hinst,   unsigned   long   reason,   void*   lpReserved)
{
        return   1;
}
//---------------------------------------
HWND   __stdcall   CreateCW(HWND   MainWindowHandle)
{
    Application-> Handle   =   MainWindowHandle;
    Form2   =   new   TForm2(NULL);
    SetParent(Form2-> Handle,MainWindowHandle);      
    Form2-> ShowModal();
    return   Form2-> Handle;

}
调用代码:

        HINSTANCE   hInstance;
        __showWindow   show;
        if(hInstance   ==   NULL)
        {
              hInstance   =   LoadLibrary(   "Project2.dll "   );
        }
        if(hInstance   !=   NULL)
        {
          MessageBox(NULL,   "BEGIN ",   " ",0);
          show   =   (__showWindow)GetProcAddress(hInstance,   "CreateCW ");
                if(NULL   !=   show   )
              {
                        hCwnd   =   show(Form1-> Handle   );
              }
              else
              {
                        MessageBox(NULL   ,   "HANSHUJIAZAISHIBAI   ", " ",   0);
              }
        }
        else
        {
                MessageBox(NULL,   "动态库加载失败 ", " ",   0);
        }


[解决办法]
看代码是没什么问题,就是没看到__showWindow函数指针的定义
提示出什么错啦?
[解决办法]
if(NULL != show )
{
hCwnd = show(Application-> Handle );
}
[解决办法]
提示都说了啊,“Cannot make a visible window modal”
我觉得是变量名的问题,因为 "Form2 "是在建立Form的时候就会导出的一个全局变量
除非你的Form2不是自动生成的,要不Form2都可以直接使用而不用代码里写new的
试下换个变量名试下

我觉得会是因为Form2已经存在,虽然你new了一个新实例赋给Form2。。。

热点排行