1>d:\3d_highspec\3d_sim\code\trunk\3d_sim\sysui\iapplication.cpp(323): fatal error C1001: 编译器中发生内部错误。
1>(编译器文件“F:\SP\VCTOOLS\Compiler\CxxFE\sl\P1\C\toil.c”,第7954 行)
1> 要解决此问题,请尝试简化或更改上面所列位置附近的程序。
出错的代码如下:
typedef CRuntimeClass* (__stdcall *GET_RUNTIMECLASS)();
GET_RUNTIMECLASS lpfnDLLProc = (GET_RUNTIMECLASS)::GetProcAddress(pStandViewDocMod->GetModuleHandle(),"GetDocumentRuntimeClass");
return lpfnDLLProc();
我仔细检查了代码,没发现语法方面的错误。网上说没装VS 2005 sp1出错的,但是我已经装了啊!还有一种解决办法是在出错信息中找到出错时正在编译的那个cpp 文件的名字,把它记下来;在FileView 窗口中的 source files下新建一个子文件夹,把刚才记住的 cpp 文件移动到这个文件夹中;然后再次编译。但是我试过,无效。重新编译整个工程也无效。
接着我试着分析编译器出错的原因。编译器编译时出错,一种可能是这个语句比较复杂而导致编译器它在进行语法分析无法分析出来而导致出错(类似的情形是人想一个很复杂的问题想疯一样)。因此一个解决思路是尽量把这行代码化简好让编译器分析。于是我试着把代码改为: