static CDllDialog *dllDialog;void ShowDlg(void)
{
if (dllDialog == NULL)
{
dllDialog =new CDllDialog;
}
dllDialog->Create(IDD_DLL_DIALOG);
dllDialog->ShowWindow(SW_SHOW);
}
{
if (dllDialog == NULL)
{
dllDialog =new CDllDialog;
}
dllDialog->Create(IDD_DLL_DIALOG);
dllDialog->ShowWindow(SW_SHOW);
}
解决方案 »
- 请教CInternetSession OpenUrl问题?
- 请问如何才能从VC++源代码的界面中找到它相应执行的程序
- COM 类厂 RegisterServer要导入什么头文件呀
- 讨论一下关于数据存储和数据搜索的问题
- 处理回包的方法讨论,是不是一定要用switch?
- 字符串用DrawText描画成Bitmap后怎么计算其宽度?
- 关于dynamic_cast的不解
- 菜菜的问题!!
- VC中自动创建的一个hello程序,主要是那个文件,VC编写时主要是哪些文件,那些头文件哪些可能以动的,应该注意些什么?VC好烦人啊
- 那位朋友了解win98下打印机驱动
- 使用gsl 出现Error LNK2005 等问题
- datagrid导到excel 出现“invalid row number”
{
typedef void (*lpFun)(void);
HINSTANCE hDll; //DLL 句柄
hDll = LoadLibrary("RegularDll.dll");
if (NULL==hDll)
{
MessageBox("DLL 加载失败");
}
lpFun addFun; //函数指针
lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");
if (NULL==pShowDlg)
{
MessageBox("DLL 中函数寻找失败");
}
pShowDlg();
}调用函数是这样,关闭MFC窗口后再次打开就出现那个错误了。
{
MessageBox("DLL 加载失败");
}
lpFun addFun; //函数指针
lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");
if (NULL==pShowDlg)
{
MessageBox("DLL 中函数寻找失败");
}
失败要return的dllDialog->Create(IDD_DLL_DIALOG);创建后没有销毁,再次创建肯定有问题,至少会内存泄露
怎么销毁?查不到这个函数。delete不行
其实也不用销毁, 下次使用时如果窗口存在的话,直接显示就行了
if(IsWindow(dllDialog->GetSafeHwnd())
{
dllDialog->ShowWindow(SW_SHOW);
}
else
{
dllDialog->Create(IDD_DLL_DIALOG);
}