1

我正在尝试在 PocketPC 2003 的项目中使用 setlocale 函数。在此之前,我做了一些简单的测试,在单独的控制台应用程序项目中替换了一些字符。在 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文件。在这种情况下发生了什么?

4

1 回答 1

1

您正面临 C 与 C++ 链接问题。C 和 C++ 对链接名称的处理方式非常不同。

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

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

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

于 2013-07-24T13:54:50.370 回答