我实际上是尝试通过使用本答案中概述的步骤启用系统日志记录来解决此问题,因为我的项目总是过时的.
但是我无法devenv.exe.config在我的机器上的任何地方找到或匹配的.exe文件,更不用说在C:\Program Files或者C:\Program Files (x86).
我正在运行Windows 7 SP1(我认为不是特别相关)和VS2010 Express SP1.我当时认为devenv可能在Express版本中不可用,但我找不到任何信息来确认或否认我的理论.
任何人都可以建议我为什么没有devenv.exe以及我是否应该?
如果没有,我如何修复"总是过时"的问题,而无法得到一个正确的日志,告诉我是什么导致了这个问题?
对于一个Windows应用程序,我试图得到CreateWindow()它WndProc()(或我的版本)成为一个单独的类的一部分,它是在开始时创建的,_tWinMain()但是因为尝试将函数转移到GameHandler.h,GameHandler.cpp我不断得到"未解析的外部符号_WinMain @" 16" .它们最初是全局函数,main.cpp并且一切都编译得很好然后我决定将它们移动到GameHandler,因为我得到的是未解析的外部,即使我试图将它们移回main.cpp.
我在VS2010中这样做,该项目是作为Windows应用程序创建的,并且在属性中没有设置特定的入口点(我仔细检查过,因为我发现的每个解决方案都说是因为它是一个控制台应用程序 - 这不是' T).
我目前拥有的代码如下所示.实际项目有几千行其他代码我遗漏了,因为我认为它不相关(但很高兴证明是错误的.虽然实际的窗口创建代码是相关的,但我不认为代码本身是问题(除了我留下的),它是GameWindowProc()和/或CreateGameWindow()的位置或它们的调用方式.实际的窗口创建代码取自NeHe的教程.试图仅编译以下代码给出上述未解决的外部因素.
main.cpp中:
#include <Windows.h>
#include "GameManager.h"
#ifndef USEGMGR
bool CreateGameWindow(char* title, int width, int height, int bits, bool fullScreenFlag);
LRESULT CALLBACK GameWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
#endif
int APIENTRY _tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
LPTSTR lpCmdLine, int nCmdShow)
{
GameManager::Startup();
GameManager* GMgr = GameManager::GetInstance();
GMgr->SetProgramState(GAME_MODE);
while(GMgr->GetProgramState() != GAME_MODE) // Normally this would be if …Run Code Online (Sandbox Code Playgroud)