INT WINGDIAPI redefinition error

本文介绍了解决OpenSceneGraph中出现C2086重复定义错误的方法。通过在项目的预处理器定义中添加WIN32,可以在Visual Studio中解决此问题。同时,还需要根据配置类型分别添加_DEBUG和NDEBUG。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C2086: 'int WINGDIAPI' : redefinition errors in Open Scene Graph?

The solution is: [Obtained from this website]

You need to add WIN32 to the defines in your project. In Visual Studio, right-click on your project, go to C/C++, Preprocessor, and in the Preprocessor Definitions field add WIN32 for both debug and release configurations. While you're at it, also add _DEBUG for the debug configuration and NDEBUG for the release configuration...
For some reason the default VS projects have no preprocessor definitions, even though these, at least, should almost always be used...



PS D:\HK\Git\Soft\Make\MakeTest\MakeTest> make gcc -g -Wall -c main.c -o build/main.o main.c: In function 'GetCurrentTimeString': main.c:16:14: error: passing argument 1 of 'wsprintfA' from incompatible pointer type [-Wincompatible-pointer-types] 16 | wsprintf(buffer,"%02d:%02d:%02d",st.wHour,st.wMinute,st.wSecond); | ^~~~~~ | | | LPWSTR {aka short unsigned int *} In file included from C:/Program Files/C/x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev1/mingw64/x86_64-w64-mingw32/include/windows.h:72, from main.c:4: C:/Program Files/C/x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev1/mingw64/x86_64-w64-mingw32/include/winuser.h:170:36: note: expected 'LPSTR' {aka 'char *'} but argument is of type 'LPWSTR' {aka 'short unsigned int *'} 170 | WINUSERAPI int WINAPIV wsprintfA(LPSTR,LPCSTR,...); | ^~~~~ main.c: In function 'WndProc': main.c:36:31: error: passing argument 4 of 'TextOutA' from incompatible pointer type [-Wincompatible-pointer-types] 36 | TextOut(hdc,10,10,timeStr,wcslen(timeStr)); | ^~~~~~~ | | | WCHAR * {aka short unsigned int *} In file included from C:/Program Files/C/x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev1/mingw64/x86_64-w64-mingw32/include/windows.h:71: C:/Program Files/C/x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev1/mingw64/x86_64-w64-mingw32/include/wingdi.h:3458:64: note: expected 'LPCSTR' {aka 'const char *'} but argument is of type 'WCHAR *' {aka 'short unsigned int *'} 3458 | WINGDIAPI WINBOOL WINAPI TextOutA(HDC hdc,int x,int y,LPCSTR lpString,int c); | ~~~~~~~^~~~~~~~ make: *** [Makefile:50: main.o] Error 1
最新发布
03-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值