我是C / C ++编程的新手,我需要创建一个dll文件,以便算法模型可以与另一个调用它的程序进行交互。我用C和C ++编写了一个带函数原型和伪返回值的空函数,并分别用gcc和g ++编译。从C文件生成的dll文件很容易与Parent程序集成并返回所需的输出。但是,对于C ++,程序说找不到初始化功能。两个文件中的代码结构如下:
void initialise (int a) {
return 1;
}
void body (int b) {
return 1;
}
void close () {
return 1;
}
编译方法(分别使用mingw gcc和g ++)
gcc -c test.c
gcc -shared -o test1.dll test.o
g++ -c test.c
g++ -shared -o test2.dll test.o
我需要cpp继续我的项目,所以不能使用c。如何使用C编译dll以消除此错误?还请注意C和C ++之间的编译有什么不同导致了这个问题?
答案 0 :(得分:0)
尝试:extern“c”__ declspec(dllimport)