setlocale,错误LNK2019

时间:2013-07-24 13:47:08

标签: c++ c setlocale

我正在尝试在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文件。在这种情况下发生了什么?

1 个答案:

答案 0 :(得分:1)

您正面临C与C ++的链接问题。 C和C ++具有非常不同的方式来修改链接名称。

为了告诉您的C ++编译器标题应该具有C mangling样式,您应该添加以下代码:

extern "C" {
    // Some C code, headers inclusion etc...
}

您可以通过Google搜索C / C ++中的链接和修改来了解更多信息。