关于调用DLL中窗体的有关问题
求助:关于调用DLL中窗体的问题!
exe的cpp
void (*dCutReportI)(TADOConnection *ADOConnection);
HINSTANCE hDLL = LoadLibrary( ".\\CutReportI.dll ");
if (hDLL)
{
(void *)dCutReportI = GetProcAddress(hDLL, "CutReportI ");
if (dCutReportI)
dCutReportI(DM-> ADOConnection);
else
ShowMessage( "Could not obtain function pointer! ");
FreeLibrary(hDLL);
}
else
{
ShowMessage( "Could not load CutReportI.dll! ");
}
//------------------------------------
dll的cpp
extern "C " __declspec(dllexport) void _stdcall CutReportI(TADOConnection *ADOConnection)
{
frmCutInfo = new TfrmCutInfo(NULL);
frmCutInfo-> ADOConnection = ADOConnection;
frmCutInfo-> ShowModal();
delete frmCutInfo;
}
//------------------------------------
问题:
一开始做好了,测试调用,一切正常;后来DLL做了一些小的调整,重新编译了下,结果调用时,状态栏出现了DLL中窗体的状态条。。。。感觉像两个EXE运行了一样,
看了半天也没明白过来,哥哥、姐姐们帮帮忙啊!
------解决方案--------------------
“状态栏出现了DLL中窗体的状态条。。。。感觉像两个EXE运行了一样”
你的这个dll肯定会这样的了。
你应该把应用程序的句柄传进去。接口应该改成这样:
extern "C " __declspec(dllexport) void _stdcall CutReportI(HANDLE hApp,TADOConnection *ADOConnection)
exe的cpp
void (*dCutReportI)(TADOConnection *ADOConnection);
HINSTANCE hDLL = LoadLibrary( ".\\CutReportI.dll ");
if (hDLL)
{
(void *)dCutReportI = GetProcAddress(hDLL, "CutReportI ");
if (dCutReportI)
dCutReportI(DM-> ADOConnection);
else
ShowMessage( "Could not obtain function pointer! ");
FreeLibrary(hDLL);
}
else
{
ShowMessage( "Could not load CutReportI.dll! ");
}
//------------------------------------
dll的cpp
extern "C " __declspec(dllexport) void _stdcall CutReportI(TADOConnection *ADOConnection)
{
frmCutInfo = new TfrmCutInfo(NULL);
frmCutInfo-> ADOConnection = ADOConnection;
frmCutInfo-> ShowModal();
delete frmCutInfo;
}
//------------------------------------
问题:
一开始做好了,测试调用,一切正常;后来DLL做了一些小的调整,重新编译了下,结果调用时,状态栏出现了DLL中窗体的状态条。。。。感觉像两个EXE运行了一样,
看了半天也没明白过来,哥哥、姐姐们帮帮忙啊!
------解决方案--------------------
“状态栏出现了DLL中窗体的状态条。。。。感觉像两个EXE运行了一样”
你的这个dll肯定会这样的了。
你应该把应用程序的句柄传进去。接口应该改成这样:
extern "C " __declspec(dllexport) void _stdcall CutReportI(HANDLE hApp,TADOConnection *ADOConnection)