【发布时间】:2009-07-21 00:10:24
【问题描述】:
我想要一个带有窗口创建和管理代码的 DLL,开发人员只需添加一个命名的 main.h 标头并加载 DLL 即可实例化一个窗口。
#include "dllheader.h"
void user_main();
main = user_main; // attach user main to the dll callback
int user_main() {
Window *w = new Window();
}
在 DLL 端,代码应该是这样的
void (*main)() = NULL;
int WinMain(...) {
if(main)
main(); // call the user defined funcion
while(!done) {
if(messageWaiting()) {
processMessage();
}
}
}
为什么?因为我想部署一个窗口包装器并避免让用户编写 WinMain 入口点。但是一个 DLL 项目有一个 DLL main 和一个 win32 项目,如果链接器找不到 winMain 入口点,则使用 DLL 抱怨。
这种安排是否有已知的解决方案?
【问题讨论】: