2010-09-20 90 views
0

我正在将程序移植到MS Windows。该程序使用动态加载的插件。主程序中的插件引用符号。如果没有解决所有符号,我甚至无法通过链接器获取DLL。有没有办法解决这个问题?DLL从其父(符号)获取符号

回答

1

(对不起,我想评论,要求澄清,但我太新手的就可以了。)

当你说的插件“的主程序参考符号”,是关于引用函数还是数据?另外,你在使用什么语言/编译器?

假设它只是关于函数,并且在C/C++中:它可以从.EXE导出函数,就像它是一个DLL一样。只需在.EXE中的函数定义前面指定__declspec(dllexport)即可。编译.EXE文件时,应该生成一个.LIB文件,然后可以在链接每个插件时用作输入。

+0

如果我理解正确,你建议我链接到程序的静态库版本。这是获取函数副本的好主意,但如果函数引用全局变量(包括静态),那么这将不起作用,因为它们将引用变量的不同副本。其实我只是假设它不起作用。 – Rubinium 2010-09-22 13:35:50

+0

不,实际上。导出库是一个.LIB,它对链接器设置动态调用很有用。当你调用有问题的函数时,它仍然是对DLL的调用(或者在这种情况下是EXE)。 – 2011-05-25 17:28:55