C++ 如何在运行时包含headefile和函数C++;?

C++ 如何在运行时包含headefile和函数C++;?,c++,visual-studio-2010,linker,static-libraries,googletest,C++,Visual Studio 2010,Linker,Static Libraries,Googletest,我有两个基本项目Proj1.lib和Proj2.exe。现在Proj2.exe是启动项目,它将调用Proj1.lib。现在,我将向我的主项目添加另一个Test.lib,其中包含Gtest。现在,为了使Gtest累积Gtest中的所有测试用例,我们需要从test.lib调用一个函数,并且该函数名和头文件需要包含在Proj2.exe中。然后编译Proj.exe,然后编译Test.lib,然后执行测试用例。但现在我的要求是不要干扰Proj2.exe。如果需要,我会附加/deachTest.lib或Te

我有两个基本项目
Proj1.lib
Proj2.exe
。现在
Proj2.exe
是启动项目,它将调用
Proj1.lib
。现在,我将向我的主项目添加另一个
Test.lib
,其中包含
Gtest
。现在,为了使
Gtest
累积
Gtest
中的所有测试用例,我们需要从
test.lib
调用一个函数,并且该函数名和头文件需要包含在
Proj2.exe
中。然后编译
Proj.exe
,然后编译
Test.lib
,然后执行测试用例。但现在我的要求是不要干扰
Proj2.exe
。如果需要,我会附加/deach
Test.lib
Test2.lib
。。。等等

下面将展示我们目前是如何做的

Proj1.lib

x.c file
y.c file {/*App_Main_function()*/}
Test.cpp
{
    TestMain()
    {/*Body*/
        InitilizeGoogleTest();
        TEST_F(abc, ab)
        {}
    }
}
Proj2.exe

A.cpp
B.cpp file {/*Call App_Main_function();*/}
AttachTest.cpp {Test_Main();}
Test.lib

x.c file
y.c file {/*App_Main_function()*/}
Test.cpp
{
    TestMain()
    {/*Body*/
        InitilizeGoogleTest();
        TEST_F(abc, ab)
        {}
    }
}
明天如果有更多或新的测试库,那么我必须从
Proj.exe
打开
AttachTest.cpp
文件,并添加函数名和头文件名。然后Proj2.exe将再次编译

但是我想现在我将保留
Proj1.lib
Proj2.exe
修复它们不会得到编译,除非是new
Test.lib
怎么做,

我已经想到了一种方法,我将有
.xml
文件,它将有函数名。在
Proj2.exe
中,我将有函数指针,它将在运行时调用它们。但是如何包含头文件呢


请帮助我。

您需要构建动态链接库(DLL)来完成所需的操作<无法动态加载代码>库.lib库

下面是一些如何使用这些库的示例代码,来自:

#包括
#包括
//DLL函数签名
typedef double(*importFunction)(double,double);
int main(int argc,字符**argv)
{
导入函数addnumber;
双重结果;
HINSTANCE hinstLib;
//加载DLL文件
hinstLib=LoadLibrary(文本(“Example.dll”);
if(hinstLib==NULL){
printf(“错误:无法加载DLL\n”);
返回1;
}
//获取函数指针
addNumbers=GetProcAddress(hinstLib,“addNumbers”);
if(addNumbers==NULL){
printf(“错误:找不到DLL函数\n”);
免费图书馆(hinstLib);
返回1;
}
//调用函数。
结果=添加编号(1,2);
//卸载DLL文件
免费图书馆(hinstLib);
//显示结果
printf(“结果是:%f\n”,result);
返回0;
}

您需要使用DLL。