jjzjj

c++ - 将 HDF5 库链接到 Visual C++ DLL 项目 : unresolved external symbol __imp__*

我正在使用MSVisualC++2010Express构建一个插件,我想包含来自HDF5library的功能.我尝试过使用CMake从源代码构建HDF5,并安装预编译库(HDF5-1.8.7_CMake_x86_shared.zip对于VC2008)。对于任一构建目录/方法,我都修改了我的项目属性:C/C++>General>AdditionalIncludeDirectories:为HDF5添加includeLinker>General>AdditionalLibraryDirectories:为HDF5添加lib这是我的DLL模块的片段:#include"cpp/H5Cpp.h"s

c# - 在 C# 代码中导入 DLL 函数

我有一个DLL,我想在我的C#代码中使用它的函数以下是该DLL的功能:extern"C"{__declspec(dllimport)constchar*__stdcallZAJsonRequestA(constchar*szReq);__declspec(dllimport)constwchar_t*__stdcallZAJsonRequestW(constwchar_t*szReq);__declspec(dllimport)constBSTR__stdcallZAJsonRequestBSTR(BSTRsReq);}谁能告诉我如何在c#项目中使用它,因为这个dll似乎是用其他语言编

c++ - 何时使用静态变量 C++

我对static/global/globalstatic/extern变量的用法有点困惑。我希望在创建类实例时增加一个计数器变量。如果有人可以发布对每个适当用法的说明,将不胜感激。 最佳答案 根据面向对象的概念,您应该永远使用全局静态变量。您可以在class中为class的实例计数定义一个static变量。将其设置为private,这样除了您的构造函数之外没有其他人可以增加计数。提供一个public函数来获取计数器。请参见下面的示例:你的类.h:classYourClass{private:staticintinstanceCoun

c++ - 我可以将 `extern template` 放入头文件中吗?

在头文件中放一个外部模板,然后在单元编译文件中显式模板实例化有效吗?例如在g++的编译示例中,这是为了避免nothing的实例化吗?两次?为什么没有人这样写而更喜欢复制externtemplate每个.cpp文件中的行?A.hpp:#ifndefHEADERC_A#defineHEADERC_Atemplatestructnothing{};externtemplatestructnothing;#endifA.cpp:#include"A.hpp"templatestructnothing;ma​​in.cpp:#include"A.hpp"#includeintmain(){not

c++ - extern是否破坏封装

我是C++的新手,我正在创建游戏。我有一个名为main的类,我在其中声明Game*game;//globallyintmain(){game=newGame();game->show();}我的类游戏启动我的游戏等。现在在其他类(玩家、敌人等)中,我使用游戏访问变量,例如玩家健康#includeexternGame*game;func::func(){game->health->resetHealth();}这是否打破了封装/ood范式?这是不好的做法吗?问题是我可以看到任何其他为游戏做这件事的方法。 最佳答案 是的,extern破

c++ - 为什么使用 extern struct {} foo,会触发无效的 fPIC required 错误消息?

我正在构建一个共享库,它具有如下所示的相应代码和编译规则://x.Cstruct{shortlen;chars[32700];}foo;//u.Cexternstruct{shortlen;chars[32700];}foo;voidblah(void){foo.s[0]=0;}$CXX-cx.C-fPIC$CXX-cu.C-fPIC$CXX-shared-ox.so.1-Wl,-soname,x.so.1x.ou.o此代码使用intel(v13-v16)编译器和clang编译器(v3.6)进行编译和链接,但使用g++(版本4.9.2)时出现链接错误:u.o:relocationR_X

c++ - 在 D 中实现类并在 C++ 中实例化/lifetimetrack

我尝试在D中实现一个类并将其导出到C++。与this中的示例不同教程我想在C++中控制生命周期。我认为可以在D中调用一个工厂方法,创建一个实例,将其标记为gcRoot并返回它。当C++不再需要此类时,它会调用D中的一个函数来取消将实例标记为GCRoot。以下代码编译但在从C++调用计数函数时产生sigsegvD代码:importcore.memory;extern(C++)interfaceB{public:extern(C++)intcount();private:}classD:B{extern(C++)intcount(){return10;}};extern(C++)B*Cre

c++ - 如何跨多个文件声明全局 std::vector 二维数组? C++

我有一个头文件,其中有一个二维数组外部声明,还有一个cpp文件,其中有数组的实际定义,供它链接到。我想用二维vector替换这个数组,但我的编译器一直告诉我:'A':redefinition;multipleinitialization这是我的代码标题.h#ifndefHEADERS_H_DECLARED#defineHEADERS_H_DECLARED#include...externstd::vector>A(10,std::vector(10));...#endifA.cpp#include"headers.h"...std::vector>A(10,std::vector(10

C++ 外部类定义

我正在阅读一些代码:externclassMyClass:BaseClass{...}MyInstance;extern是指类声明还是实例? 最佳答案 实例。类不能是外部的。尽管代码有异味-这段代码表明该实例的真实声明使用了单独的类定义。坏主意-两次定义类。 关于C++外部类定义,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2023952/

c++ - Visual C fatal error LNK1120 : 1 unresolved externals

不知道出了什么问题,所有的帮助将不胜感激。我想我的文件源有问题,但不确定。1>------Buildstarted:Project:Assignment08ADL,Configuration:DebugWin32------1>Buildstarted3/18/20138:37:38PM.1>InitializeBuildStatus:1>Touching"Debug\Assignment08ADL.unsuccessfulbuild".1>ClCompile:1>Assignment08ADL.cpp1>GeneratingCode...1>Skipping...(norelevan