gpt4 book ai didi

c++ - 如何在 C++ 中删除重整

转载 作者:行者123 更新时间:2023-11-28 01:15:11 25 4
gpt4 key购买 nike

我试图在 C++ 中创建一个返回 vector 的函数。但是当它构建到 dll 时,函数名称似乎被破坏了。

我尝试使用 extern C 但问题是如果我使用 extern C 则返回类型 vector 不支持

Error : C Linkage function cannot return C++ class std:: Vector

下面是我使用的代码

class __declspec(dllexport) TestClass
{
public:
string sClassName;
string sName;
string sDescription;


};


extern "C"
{
vector<TestClass> __declspec(dllexport) GetInfoList();
}

最佳答案

我们看到这不是简单解决方案的问题。这是一个复杂的解决方案。在 GetProcAddress 中使用未损坏的名称(外部“C”)来访问更高级别 DLL 中的特殊函数。 .在抽象基类中将所有要调用的函数定义为虚函数。调用上面的函数来检索指针 P 到一个延迟实例化的具体类,并覆盖虚拟。通过指针P调用想要的方法。

关于c++ - 如何在 C++ 中删除重整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58934638/

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