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都依赖于它?