如题,代码如下,求指点 谢谢
ypedef void (WINAPI * TESTDLL)(); HINSTANCE hDll = NULL;
hDll = ::LoadLibrary(_T("Wnd.dll")); if (NULL == hDll)
{
MessageBox(_T("Wrong"));
} TESTDLL lpproc;
lpproc = (TESTDLL) GetProcAddress(hDll, "ShowTest"); if ((TESTDLL)NULL != lpproc)
{
(*lpproc)();
FreeLibrary(hDll);
}
extern "C" __declspec(dllexport) void ShowTest()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest test;
/*test.Create(IDD_DIALOGBAR);*/
test.DoModal();
test.MoveWindow(200, 200, 500, 500);
}
ypedef void (WINAPI * TESTDLL)(); HINSTANCE hDll = NULL;
hDll = ::LoadLibrary(_T("Wnd.dll")); if (NULL == hDll)
{
MessageBox(_T("Wrong"));
} TESTDLL lpproc;
lpproc = (TESTDLL) GetProcAddress(hDll, "ShowTest"); if ((TESTDLL)NULL != lpproc)
{
(*lpproc)();
FreeLibrary(hDll);
}
extern "C" __declspec(dllexport) void ShowTest()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest test;
/*test.Create(IDD_DIALOGBAR);*/
test.DoModal();
test.MoveWindow(200, 200, 500, 500);
}
解决方案 »
- 急急急!!!明天填报志愿了,学什么专业好???
- VC写的程序,窗口没有系统样式,求帮助
- [简单问题]实时显示鼠标位置坐标后,出现不断显示的问题。如何消除
- 请大家帮忙:计算机技术自学阶段,写了十五个,想搞二十个
- 如何用命令设置List控件行的高度
- 怎样弹出文件保存对话框?谢谢!
- 紧急求援(高分):如何实现可以独立浮动 ,并且可以拖动到另外一个窗体中,拼成一个类似CPropertySheet的样子?
- 如何构建多重选择的文件对话框?
- Dependency Walker 的os ver项在vc中是如何设置的
- 我怎么知道某个结构定义在哪个头文件中?
- 关于com编程
- 属性表有3页,每页都有1按钮(记做Btn_Sheet),在第2,3页时BS_DEFPUSHBUTTON是表的"确定"按钮,但切换
AFX_MANAGE_STATE改变的内容比较多,如果仅仅是切换资源还是用上面两个好。
test.DoModal();调试的时候,会停在DoModal上面吗?
1、调用者也是MFC吗?如果是,应该用AfxLoadLibrary而不是::LoadLibrary。如果不是,问题就大了,你见过非MFC的EXE/DLL能成功调用MFC DLL的吗?2、DoModal调用时不会退出,指导对话框窗口被关闭,既然窗口已经关闭了,MoveWindow还有意义吗?楼上的说改变次序也不行,MoveWindow先调用时对话框根本没有创建。3、跟踪过 if ((TESTDLL)NULL != lpproc) 这句吗?是不是能获取到导出函数的地址?导出函数用到了extern "C"来修饰,但是调用者直接用了 typedef void (WINAPI*)(); 这两个申明你确定一致?C命名和C++命名是不同的。
{
//AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest test(p);
/*test.Create(IDD_DIALOGBAR);*/
test.DoModal();
//test.MoveWindow(200, 200, 500, 500);
}