jjzjj

declspec

全部标签

C++ DLL 链接 Unresolved external

我有一个相当大的Core项目,我正在尝试调整它以使用我构建的DLL引擎,我遇到了一堆错误,例如:未解析的外部符号“私有(private):静态类”当在DLL中包含来自核心的一些header时,该类通过__declspec(dllexport)导出,但任何具有静态成员的header都会抛出大量关于静态成员的错误。这是一个相当大的项目,我不能跑来跑去删除我看到的每个静态类成员,有没有这种东西?正在导入的类的基本示例:class__declspec(dllexport)MyClass{public:staticboolm_someVar;}为了清楚起见,我只想说明m_someVar是在类实现

c++ - 如何在 STL 模板中使用导出类 (__declspec(dllexport))?

我正在使用导出类class__declspec(dllexport)myclass{private:template__declspec(dllexport)classstd::map;std::mapm_map;//something};当我这样做时,我收到警告C4251说m_map:class'std::map'needstohavedll-interfacetobeusedbyclientsofclassmyclass.关于如何解决这个问题的任何想法?阿图尔 最佳答案 您不应该在使用您的DLL的代码将使用的头文件中使用__de

c# - __declspec(dllexport)::vector <std::string>

我一直在努力弄清楚如何将字符串数组从C++DLL返回到C#应用程序,但我对如何执行此操作或在非常基础的级别上查找文章感到困惑。假设我有下面的代码。如何修复粗体线:extern"C"{__declspec(dllexport)intGetANumber();//unsureonthisline:**__declspec(dllexport)::vectorListDevices();**}extern::vectorGetStrings(){vectorseqs;returnseqs;}externintGetANumber(){return27;}谢谢马特

c++ - 如何将 __declspec(align(16)) 与模板一起使用?

我正在尝试使我的class16-byte与__declspec(align(16))对齐;但是它是一个模板类。如果我将__declspec(align(16))放在模板关键字之前,它告诉我那里不允许使用可变属性。如果我将它放在class关键字之前,整个类将变得无效并且所有方法都会显示错误。那么它是怎么做到的呢? 最佳答案 这个实现可能会回答这个请求:templatestructalignas(Align)aligned_storage{Ta;Tb;};templatestructaligned_storage_members{ali

c++ - 错误 LNK2001 : unresolved external symbol "__declspec(dllimport) public: class QString & __thiscall QString::operator=(class QString &&)"

我非常想找到关于上述错误的任何信息。我正在使用visualstudio2010。当我在调试或发布中编译我的项目(32位)时,我收到以下消息:1>heterogeneous.obj:errorLNK2001:unresolvedexternalsymbol"__declspec(dllimport)public:classQString&_thiscallQString::operator=(classQString&&)"(_imp_??4QString@@QAEAAV0@$$QAV0@@Z)1>debug\nori.exe:fatalerrorLNK1120:1unresolvede

.net - 使用 __declspec(thread) 的线程本地存储在 C++/CLI 中失败

我正在开发一个项目,我们通过C++/CLI层混合.NET代码和nativeC++代码。在此解决方案中,我想通过__declspec(thread)声明使用线程本地存储:__declspec(thread)intlastId=0;但是,在第一次访问变量时,我得到一个NullReferenceException。更准确地说,声明是在ref类(用C++/CLI实现的.NET类)中完成的。我已经阅读过有关__declspec(thread)不适用于延迟加载的DLL的内容。如果我使用.NET,是否会自动使用延迟加载的DLL? 最佳答案 似乎_

c++ - __declspec(uuid ("ComObjectGUID ")) 扩展到什么?

我有一段代码使用了Microsoft-specificextension到C++:interface__declspec(uuid("F614FB00-6702-11d4-B0B7-0050BABFC904"))ICalculator:publicIUnknown{//...};这句话扩展到什么?我如何用ANSIC++重写它? 最佳答案 它不是一个宏,所以它不会“扩展”到任何东西。它只是在目标文件元数据中用给定的UUID修饰类型,然后可以稍后使用__uuidof提取它。运营商。 关于c+

c++ - 我应该把我的 DECLSPEC 放在哪里?

给定以下命名空间,我要将declspec(用于dll导出)放在哪里我希望将所述命名空间中的所有方法导出到DLL中?namespaceAguiText{voiddrawTextArea(AguiGraphicsManager*g,constAguiFont&font,constAguiRectangle&area,constAguiColor&color,conststd::vector&lines,AguiHorizontalAlignmentEnumhorizontalAlignment,AguiVerticalAlignmentEnumverticalAlignment);void

c++ - `__declspec(align(#))` 是如何工作的?

是的,我已经阅读了这个:http://msdn.microsoft.com/en-us/library/83ythb65.aspx但我不清楚。首先,__declspec(align(#))使用它声明的每个对象(在结构中)都从对齐的偏移量开始。那部分很清楚。对齐也由对象所在的结构“继承”。但它不会改变对象的大小,不是吗?准确地说,为什么sizeof()在这段代码中:__declspec(align(32))structaType{inta;intb;};sizeof(aType);返回32? 最佳答案 对象的大小用于计算数组中的偏移量

【C++】__declspec含义

目录一、__declspec(dllexport)如果这篇文章对你有所帮助,渴望获得你的一个点赞!一、__declspec(dllexport)__declspec(dllexport)是MicrosoftVisualC++编译器提供的一个扩展,用于指示一个函数或变量在DLL(动态链接库)中是可导出的。它告诉编译器将函数或变量放入DLL的导出表中,以便其他程序(包括其他编程语言和应用程序)可以使用它们。在使用__declspec(dllexport)时,你需要将它放在函数或变量的声明前面。例如://mydll.h#ifdefMYDLL_EXPORTS#defineMYDLL_API__decl