Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用def文件的DLL重定向导出_Dll_Mingw_Codeblocks - Fatal编程技术网

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

不使用def文件的DLL重定向导出,dll,mingw,codeblocks,Dll,Mingw,Codeblocks,是否有某种方法指示MinGW-w64或CodeBlocks项目生成def文件中的行,如下所示: func2=func1 int __attribute__((dllimport)) Double (int); int __attribute__((dllexport,alias("Double"))) NextDouble(int); 我原以为这会起作用,但编译器发出错误: | 2 |错误:“NextDouble”别名为未定义的符号“Double”| 有没有办法绕过别名到链接器 澄清: 我有一

是否有某种方法指示MinGW-w64或CodeBlocks项目生成def文件中的行,如下所示:
func2=func1

int __attribute__((dllimport)) Double (int);
int __attribute__((dllexport,alias("Double"))) NextDouble(int);
我原以为这会起作用,但编译器发出错误:

| 2 |错误:“NextDouble”别名为未定义的符号“Double”|

有没有办法绕过别名到链接器

澄清:


我有一个DLL的导入库,它导出两个DLL。我正在尝试创建第二个DLL,它将导入Double并导出NextDouble,它将指向导入的Double的地址。因此,我将在def文件中执行NextDouble=Double。这将使export NextDouble在dll中指向import Double。

这里是预处理器,它可以向-o阶段命令行添加字符:

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

因此,您可以向其中添加任何表示def文件的内容。

是否尝试为函数创建命名别名?您的实际用例是什么?(将它添加到您的问题中,而不是作为注释)我想我解决了它,当我尝试它时,我将发布整个内容。是来自另一个dll模块的
Double
?您不能为驻留在另一个dll中的符号创建别名。是的,它是:(在另一种情况下,它将很容易解决如果你解释你试图解决的是什么,它会更好。你为什么认为你需要这样做?你能展示一下宏在预处理后扩展成什么吗?有些宏没有定义,比如
linkit