error C2664: 'OutputDebugStringW' : cannot conv...

错误信息:error C2664: 'OutputDebugStringW' : cannot convert parameter 1 from 'char [100]' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

相关代码:

  if(i>1){
   sprintf(msg,"1+...+%d=%d\n",i,sum);
   OutputDebugString(msg);
  }

找了一天资料,原因锁定在字符的转换问题,搞版本的vs中,OutputDebugString要求一个wchar_t

而不是char,而sprintf则需要char参数,那我们是不是一定要通过字符转换解决问题呢?

 

答案就是 OutputDebugStringA()

原因:

默认是Unicode方式,OutputDebugString会变成OutputDebugStringW。如果想用ANSI版本的,直接写OutputDebugStringA,或者设置工程属性,使用MBCS的编码集。


 

 

 

你可能感兴趣的:(error C2664: 'OutputDebugStringW' : cannot conv...)