DLL重定向导出而不使用def文件

时间:2013-07-18 16:44:22

标签: dll mingw codeblocks

有没有办法指示MinGW-w64或CodeBlocks项目在def文件中生成这样的行:    func2=func1

int __attribute__((dllimport)) Double (int);
int __attribute__((dllexport,alias("Double"))) NextDouble(int);

我认为这会有效,但编译器会发出错误:

|2|error: 'NextDouble' aliased to undefined symbol 'Double'|

有没有办法绕过链接器的别名?

澄清:

我有一个DLL的导入库,它导出Double。我正在尝试创建第二个DLL,它将导入Double并导出NextDouble,它将指向导入的Double的地址。就像我将在def文件中执行NextDouble = Double一样。这将导致在dll中导出NextDouble以导入Double。

1 个答案:

答案 0 :(得分:0)

这里是预处理器,可以将字符添加到-o phase命令行:

#define first ".section .drectve\n.ascii\"
#define last \""
#define addcmd(name) first name last
#define cmd(name) asm(addcmd( name ))
cmd(thingtoadd)

所以你可以添加任何意味着def文件的东西。