我创建了控制台类型项目,但现在看看我需要win32类型。是否可以动态改变它?
真正的原因是我需要hInstance来运行我的窗口,所以我需要这样的入口点:
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
答案 0 :(得分:2)
您真正问题的真正答案是:您不需要将hInstance
参数传递给_tWinMain
。 GetModuleHandle(NULL);
返回相同的内容。
回答问题:将控制台应用程序更改为GUI应用程序就像使用/SUBSYSTEM:WINDOWS链接器选项指定不同的子系统并提供适当的入口点(由CRT调用)一样简单。如果尚未显式设置,链接器将根据/ SUBSYSTEM选项选择正确的入口点。如果您更改了入口点,则还必须使用/ENTRY链接器选项更新它。
可以通过Visual Studio GUI访问所有选项,也可以在相应的* .vcproj文件中手动更改。
答案 1 :(得分:1)
据我所知,没有向导或内置工具可以这样做。至少在我使用的Visual Studio版本中没有(直到VS2008)。
您可以手动完成,编辑所有不同的部分。您可以创建新类型的空项目,并将任何不同的内容复制到您的代码中。
但是,我想我会走另一条路。我将创建一个所需类型的新空项目,并复制您已创建的所有代码/设置。