我正在尝试在PocketPC 2003的项目中使用setlocale函数。在此之前,我做了一些简单的测试,替换了单独的Console应用程序项目中的一些字符。在comsole应用程序中,项目功能非常好,对她没问题。
为第一个项目使用相同的功能我遇到了一些问题。插入<clocale>
我有以下错误:
error C2143: syntax error : missing '{' before ':'
error C2059: syntax error : ':'
将<clocale>
更改为<locale.h>
我有链接错误:
error LNK2019: unresolved external symbol __imp_setlocale referenced FILE: Utils.obj
fatal error LNK1120: 1 unresolved externals Pocket PC 2003
<locale.h>
和<clocale>
没有与之关联的lib文件。在这种情况下发生了什么?
答案 0 :(得分:1)
您正面临C与C ++的链接问题。 C和C ++具有非常不同的方式来修改链接名称。
为了告诉您的C ++编译器标题应该具有C mangling样式,您应该添加以下代码:
extern "C" {
// Some C code, headers inclusion etc...
}
您可以通过Google搜索C / C ++中的链接和修改来了解更多信息。