草庐IT

private_extern

全部标签

c++ - 在命名空间中包装 extern "C"库时出现问题

我正在使用C++中的C库(libgretl),它的一些函数与我的代码冲突,所以我想将它包装在一个命名空间中,如下所示:namespacelibgretl{extern"C"{#include}}但是,这不会编译,我从gcc文件中得到“未定义”错误(在Windows上使用mingw32和gcc4.5.2)。第一个错误来自文件c++/cstddef的以下代码块:_GLIBCXX_BEGIN_NAMESPACE(std)using::ptrdiff_t;using::size_t;_GLIBCXX_END_NAMESPACE其中宏分别展开为namespacestd{和}。这些之后还有更多错误

c++ - 视觉口齿不清 : how to call functions in external C++ DLL

我有一个我编写的C++dll(native,而不是.net),我想使用VisualLisp的功能。任何人都可以指出如何执行此操作的示例,或者至少要阅读哪部分文档吗? 最佳答案 我通过为我的dll编写一个activex/COM包装器解决了这个问题,我认为这应该使将来更容易链接。在theswamp上开始一个线程从好人那里得到了一些关于如何从VisualLisp调用COM的答案。作为记录,它看起来像这样://inc++...(headerandIDLfilealsoneeded)hresulttimestwo(doublein,doubl

c++ - 错误 LNK2019 : unresolved external symbol

当我想编译我的opengl代码时,出现以下错误:Error1errorLNK2019:unresolvedexternalsymbol__imp__glewInit@0Error2errorLNK2019:unresolvedexternalsymbol__imp__glewGetErrorString@4Error3errorLNK2001:unresolvedexternalsymbol__imp____glewAttachShaderError4errorLNK2001:unresolvedexternalsymbol__imp____glewCompileShaderError

c++ - 为什么 COM DLL 导出应标记为 "PRIVATE"?

在构建COMDLL时,为什么要导出DllGetClassObject、DllCanUnloadNow、DllRegisterServer、DllUnregisterServer等。在关联的.DEF文件的EXPORTS部分中标记为PRIVATE? 最佳答案 当您构建一个DLL时,链接器会自动为该DLL创建一个导入库。它包含所有导出函数的列表。您在另一个使用DLL的项目中使用该导入库。特定于COM服务器的是,这4个导出函数总是通过GetProcAddress()找到,并且您永远不会隐式依赖于COMdll。您始终使用CoCreateIns

c++ - 具有私有(private)构造函数和自身静态数组的类

抱歉,如果标题令人困惑,我找不到简单的方法来用简单的句子来写它。无论如何,我面临的问题://header:classSomeThing{private:SomeThing(){}//lookup_table_0;staticSomeThinglookup_table_1[64];};getThatThing函数旨在从查找表中返回一个实例。//intheimplementationfile-definitionsoflookuptablesstd::arraySomeThing::lookup_table_0;//errorSomeThingSomething::lookup_table

c++ - C++中 protected 和私有(private)派生之间的区别是什么

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Differencebetweenprivate,publicandprotectedinheritanceinC++在C++中派生为protected或private有什么区别?我想不通,因为两者似乎都限制从派生类对象访问基类成员

c++ - 如何摆脱这个错误 : "MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup"

我正在帮助一位friend学习C++,但老实说,我们需要很大的帮助。为什么我们总是得到这个错误:“MSVCRTD.lib(crtexe.obj):errorLNK2019:unresolvedexternal符号main在函数__tmainCRTStartup中引用”代码如下://MariaDelgado(1013725)-Coursework2-ProgramConductingtimbercomponentstructuraldesign#include#include#include#include#includeusingnamespacestd;//VariablesforS

c++ - 头文件中的 `static` , `extern` , `const`

//a.hexternintx1;staticintx2;intx3;staticconstintx4;classA{public:staticconstintx5=10;};a.h会被多个.cpp文件包含,我的问题是:1.x1只是一个声明,不是吗?所以它的定义应该在那些.cpp文件之一中完成,对吧?2.x2是一个定义,对吧?我曾经认为staticint和externint一样也是一个声明,但我错了。x2将仅在a.h中可见?3.如果a.h包含在多个.cpp文件中,x3会被定义多次,所以x3会导致编译错误,对吧?4.x4是一个定义,对吧?5.这里在A类中,x5是一个声明,是的。但是x4呢

c++ - 如何让一个方法访问其他模板类实例的私有(private)成员?

这个极小的示例将无法编译,因为A无法访问私有(private)成员i在AtemplateclassA{inti;public:templatevoidcopy_i_from(constA&a){i=a.i;}};intmain(void){Aai;Aad;ai.copy_i_from(ad);return0;}我知道我可以让所有模板实例成为彼此的friend(参见:Howtoaccessprivatemembersofothertemplateclassinstances?),但由于我只有一种方法需要访问权限(如示例中所示),我希望将友元限制为那个方法。这可能吗?

c++ - 私有(private)复制构造函数/赋值运算符和复制初始化

这是thisquestion的后续在下面的代码中,为什么第1行可以编译而第2行和第3行没有编译(使用VisualC++2010)classABase{protected:ABase(){}~ABase(){}private:ABase(constABase&);constABase&operator=(constABase&);};classA:ABase{};classB{public:B(){}~B(){}private:B(constB&);constB&operator=(constB&);};intmain(void){Aa=A();//line1Aa2(a);//line2