Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ DLL的功能复制_C++_Windows_Dll_Shared - Fatal编程技术网

C++ DLL的功能复制

C++ DLL的功能复制,c++,windows,dll,shared,C++,Windows,Dll,Shared,假设我有以下文件结构 EXE A.h <- A class header A.cpp <- A class definition main.cpp <- main function, with call to dll { A a; dllExported(a) } Dll dllExported.h dllExported.cpp { a.fun(); } 是否有一种方法可以构建Dll和Exe,例如,有趣的代码不会在两个二进制文件中重复。 lin

假设我有以下文件结构

EXE
A.h <- A class header
A.cpp <- A class definition
main.cpp <- main function, with call to dll
 {
   A a;
   dllExported(a)
 }

Dll
dllExported.h
dllExported.cpp
 {
    a.fun();
 }
是否有一种方法可以构建Dll和Exe,例如,有趣的代码不会在两个二进制文件中重复。 linux也是如此。所以libs在默认情况下不会复制乐趣,而且它是特定于windows的

编辑:
还有一个问题,假设我已经在A.cpp中定义了全局变量,并且有外部变量。。。在A.h中,变量是否会在Dll和Exe中复制?以及如何防止这种情况。

哪种代码-A及其方法?是的,您可以将的定义放入DLL中。就像Linux一样,Windows将把代码放在你告诉它的地方,并根据需要动态链接它。还是我误解了这个问题?我想做的是编译DLL而不使用.fun,这样它就可以在运行时/加载库时得到解决,这是可能的吗?将类放入DLL并将其导入可执行文件它是虚拟的吗?如果是,那么DLL只需要包含A.h,它就可以正常工作。如果不是,那么如果您的意思是从.exe解析它,那么如果您在exe和dll之间创建循环依赖关系,那么这将很难做到。如果你真的不想在这个DLL中放一个,那么你可以把它放在第二个DLL中,让EXE和这个DLL都依赖于它?