gpt4 book ai didi

c++ - Unicode 模式下的 TCHAR 被视为 typedef char TCHAR

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:10 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。

我正在编译一个使用静态库 MyLib.lib 的 MFC 应用程序 (VS 2008)。它在 Debug模式下编译正常。但在 Debug Unicode 中显示错误。我在 MFC 应用程序中使用 MyLib.lib 的 Debug Unicode 版本。

Main.obj : error LNK2019: unresolved external symbol "void * __cdecl  VCI_Open_Device(wchar_t *)" (?VCI_Open_Device@@YAPAXPA_W@Z) referenced in function _wmain    


VCIHANDLE
VCI_Open_Device ( TCHAR *ptszDevicePath
);

我注意到在 MFC 应用程序中,在 Debug模式下 TCHAR 是 typedef char TCHAR,这是正确的,但在调试 Unicode 模式下 TCHAR 应该是 typedef WCHAR TCHAR,但这里它也显示 typedef char TCHAR。我检查了 WebCam.lib Project TCHAR 在 Debug Unicode 模式下是 typedef WCHAR TCHAR,这是正确的。

我猜是MFC app模式下Debug Unicode模式的某些设置有问题。请帮助解决这个问题。 #ifdef UNICODE//r_winnt

#ifndef _TCHAR_DEFINED
typedef WCHAR TCHAR, *PTCHAR;
typedef WCHAR TBYTE , *PTBYTE ;
#define _TCHAR_DEFINED
#endif /* !_TCHAR_DEFINED */

typedef LPWCH LPTCH, PTCH;
typedef LPCWCH LPCTCH, PCTCH;
typedef LPWSTR PTSTR, LPTSTR;
typedef LPCWSTR PCTSTR, LPCTSTR;
typedef LPUWSTR PUTSTR, LPUTSTR;
typedef LPCUWSTR PCUTSTR, LPCUTSTR;
typedef LPWSTR LP;
typedef PZZWSTR PZZTSTR;
typedef PCZZWSTR PCZZTSTR;
typedef PUZZWSTR PUZZTSTR;
typedef PCUZZWSTR PCUZZTSTR;
typedef PNZWCH PNZTCH;
typedef PCNZWCH PCNZTCH;
typedef PUNZWCH PUNZTCH;
typedef PCUNZWCH PCUNZTCH;
#define __TEXT(quote) L##quote // r_winnt

#else /* UNICODE */ // r_winnt

#ifndef _TCHAR_DEFINED
typedef char TCHAR, *PTCHAR;
typedef unsigned char TBYTE , *PTBYTE ;
#define _TCHAR_DEFINED
#endif /* !_TCHAR_DEFINED */

typedef LPCH LPTCH, PTCH;
typedef LPCCH LPCTCH, PCTCH;
typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR;
typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;
typedef PZZSTR PZZTSTR, PUZZTSTR;
typedef PCZZSTR PCZZTSTR, PCUZZTSTR;
typedef PNZCH PNZTCH, PUNZTCH;
typedef PCNZCH PCNZTCH, PCUNZTCH;
#define __TEXT(quote) quote // r_winnt

#endif /* UNICODE */

在这里,当我右键单击 TCHAR 时,它不会进入 UNICODE 部分。

最佳答案

确保您所有的东西都是用相同的 tchar 处理方式构建的。转到 Project/Propeties/C-C++/Language/Treat w_chart as Built in Type 并检查它是否为您的库和应用程序设置了相同的值。默认设置为No (/Zc:wchar_t-)

关于c++ - Unicode 模式下的 TCHAR 被视为 typedef char TCHAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com