C++ DLL项目中的静态链接函数

C++ DLL项目中的静态链接函数,c++,C++,我不知道为什么,但我认为我可以静态链接导入库中的函数。似乎我是唯一一个尝试过的人,因为我一生都找不到类似的职位。有没有一种方法可以在不创建新项目和/或将其重新编译为静态项目的情况下,从动态链接的项目中选择静态链接功能?模块本身通过接口进行通信,我对导出函数不是很在行。我只想静态链接代码来创建对象 将其转换为宏会有多糟糕 IClassFactory* CF = NULL; hr = CoGetClassObject ( CLSID_CF, CLSCTX_INPROC_SERVER,

我不知道为什么,但我认为我可以静态链接导入库中的函数。似乎我是唯一一个尝试过的人,因为我一生都找不到类似的职位。有没有一种方法可以在不创建新项目和/或将其重新编译为静态项目的情况下,从动态链接的项目中选择静态链接功能?模块本身通过接口进行通信,我对导出函数不是很在行。我只想静态链接代码来创建对象

将其转换为宏会有多糟糕

IClassFactory* CF = NULL;
hr = CoGetClassObject (
    CLSID_CF,
    CLSCTX_INPROC_SERVER,
    NULL,
    IID_IClassFactory,
    (void**)&CF );

Interface* Instance = NULL;
hr = CF->CreateInstance (
    NULL,
    IID_Interface,
    (void**)&Instance );

静态链接库和导入库不能同时使用。导入库用于帮助链接器确定您调用的函数位于DLL中


如果您想要静态链接(假设您有可用的代码),那么重新配置并将DLL项目重新编译为静态库

如果这是您自己的项目(或者您有源代码并且愿意修改它),您可以对不希望动态链接的函数使用
内联
函数。

“…而不创建新项目和/或将其重新编译为静态?”-me……所以不!我导出了函数并隐式链接了dll。。。仍然希望我可以只指定一个函数的静态链接。。。。。