下載新的cocos2dx 3.13,想使用simulator來運行lua項目,結果發現使用vs2013編譯不通過。
1.
9>main.cpp(5): error C2146: 語法錯誤: 缺少“;”(在標識符“wWinMain”的前面)
9>main.cpp(9): warning C4007: “wWinMain”: 必須是“__stdcall”
9>main.cpp(9): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
解決辦法:
將main.cpp里的第5行APIENTRY修改為WINAPI或者__stdcall

2.
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: 命令“if not exist "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime" mkdir "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073:
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: if not exist "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32" mkdir "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073:
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: xcopy /Y /Q "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\Debug.win32\*.dll" "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: xcopy /Y /Q "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\Debug.win32\*.exe" "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: xcopy /Y /Q "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\Debug.win32\lang" "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073:
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: :VCEnd”已退出,代碼為 4。
解決辦法:
項目屬性>生成事件>后期生成事件>命令行,將里面的最后一段:xcopy /Y /Q "$(OutDir)lang" "$(ProjectDir)..\..\..\runtime\win32" 刪除(這個語言文件會在下面提到,如果這里不刪除的話,將對應的lang文件拷貝到相應的地方也是可以的)
3.好,到目前為止,編譯上的問題解決了。但是發現將simulator放到lua項目上使用不了啊,看代碼發現對應腳本實現的start方法調用竟然沒有了。
解決辦法:(這個過程其實就是將舊引擎的整套東西搬過來)
下載舊的cocos2dx引擎(我的是3.10),將對應缺的文件和代碼補上。
①將cocos2d-x-3.10\tools\simulator\frameworks\runtime-src\Classes\ide-support拷貝到對應新引擎文件夾里(里面包含了語言文件lang)
②將代碼加入到simulator的工程里面去,由於我們只使用lua,所以只加lua到里面去(編譯js的話好像有點問題,由於只使用lua所以將js的問題跳過了)

③將cocos2d-x-3.10\tools\simulator\frameworks\runtime-src\Classes\AppDelegate.cpp文件內容拷貝到新引擎對應的文件里去,並屏蔽js相關代碼


OK,編譯后放到lua項目中,正常運行了。
