gpt4 book ai didi

c++ - DLL 导出 : not all my functions are exported

转载 作者:行者123 更新时间:2023-11-28 03:05:45 28 4
gpt4 key购买 nike

我正在尝试创建一个导出多个函数的 Windows DLL,但是我的所有函数都导出了一个!!

我想不出来

我使用的宏是这个简单的:

__declspec(dllexport) void myfunction();

它适用于我的所有功能,除了一个。我查看了 Dependency Walker 内部,它们都在这里,除了一个。

怎么可能?那是什么原因呢?我卡住了。

编辑:更准确地说,这是 .h 中的函数:

namespace my {
namespace great {
namespace namespaaace {

__declspec(dllexport) void prob_dump(const char *filename,
const double p[], int nx, const double Q[],
const double xlow[], const char ixlow[],
const double xupp[], const char ixupp[],
const double A[], int my, const double bA[],
const double C[], int mz,
const double clow[], const char iclow[],
const double cupp[], const char icupp[]
);
}}}

在 .cpp 文件中它是这样的:

namespace my {
namespace great {
namespace namespaaace {


namespace {

void dump_mtx(std::ostream& ostr, const double *mtx, int rows, int cols, const char *ind = 0)
{
/* some random code there, nothing special, no statics whatsoever */
}
} // end anonymous namespace here

// dump the problem specification into a file
void prob_dump(
const char *filename,
const double p[], int nx, const double Q[],
const double xlow[], const char ixlow[],
const double xupp[], const char ixupp[],
const double A[], int my, const double bA[],
const double C[], int mz,
const double clow[], const char iclow[],
const double cupp[], const char icupp[]
)
{

std::ofstream fout;
fout.open(filename, std::ios::trunc);

/* implementation there */

dump_mtx(fout, Q, nx, nx);
}

}}}

谢谢

最佳答案

我找到了解决方法:

当我将 __declspec(dllexport) 添加到函数定义时,在 cpp 文件中,它被导出。

我完全不知道为什么会这样,因为 MSDN 似乎没有提到这样做。

关于c++ - DLL 导出 : not all my functions are exported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19791023/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com