gpt4 book ai didi

c++ - 两个项目之间的 MFC CString 链接器错误

转载 作者:搜寻专家 更新时间:2023-10-31 01:11:24 26 4
gpt4 key购买 nike

我在 C++ (MFC) 中有 2 个项目一个是我在第二个(一个可执行的)中使用的库项目。

它们配合得很好,直到我从常规项目中调用一个以 CString 作为参数的函数。我收到这样的链接器错误

error LNK2019: unresolved external symbol "public: void __thiscall 
CTextDisplay::SetText1(class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,
class ATL::ChTraitsCRT<wchar_t> > >)" (?SetText1@CTextDisplay@@QAEXV?$CStringT@_WV?
$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z) referenced in function
"public: void __thiscall CManualPane::SetBeadCountFor(int,double)"
(?SetBeadCountFor@CManualPane@@QAEXHN@Z) C:\source\IQ-Project\IQ\ManualPane.obj IQ

可执行项目的字符集为 UNICODE,但库将其设置为多字节字符集。如果不出现大量荒谬的错误,我真的无法更改它们。

有什么建议吗?

编辑:我们在这两个项目中有不同设置的原因是因为可执行项目基本上是我的小组没有构建或创建的外部项目。我们只需要将它带进来并使用它。图书馆项目是我们多年来一直致力于的项目。

最佳答案

当您在可执行文件中包含库项目的 header 时,可能会在函数声明中使用 typedef。由于可执行文件使用 UNICODE,声明现在是 UNICODE。但是,库实现仍在 MultiByte 中,因此定义与导致链接器错误的声明不匹配。

查看这些 typedef 的设置方式,您也许可以围绕包含的 header 执行一些特殊的#define、#undef。

关于c++ - 两个项目之间的 MFC CString 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941817/

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