Visual c++ 如何在Visual C+中将某些函数分组到.exe输出的新内存段中+; 我需要使用VisualC++来构建定制的Apache Web服务器。以下是我试图实现的目标:在Apache源代码中指定一些函数或数据,并将它们放在output.exe文件的单独和4k页面对齐的部分(而不是.text.data.bss)中

Visual c++ 如何在Visual C+中将某些函数分组到.exe输出的新内存段中+; 我需要使用VisualC++来构建定制的Apache Web服务器。以下是我试图实现的目标:在Apache源代码中指定一些函数或数据,并将它们放在output.exe文件的单独和4k页面对齐的部分(而不是.text.data.bss)中,visual-c++,compiler-construction,linker,Visual C++,Compiler Construction,Linker,我可以在网上找到的最新解决方案是使用/Gy编译器选项将每个函数编译成不同的COMDAT,然后使用/ORDER链接器选项将COMDAT按预定顺序排列。但是,它只是在节内重新排序,而不是更改.exe输出中的节布局或创建新节。在Linux下,我可以使用编译器属性“section”和链接器脚本来实现我的目标。Visual C++中是否存在等价解?非常感谢:-)允许您指定代码将放入的段。除了能够指定名称外,编译器还保留了一堆名称,以便您可以根据需要推送和弹出当前状态。在我将函数和数据放入不同的页面对齐部分

我可以在网上找到的最新解决方案是使用/Gy编译器选项将每个函数编译成不同的COMDAT,然后使用/ORDER链接器选项将COMDAT按预定顺序排列。但是,它只是在节内重新排序,而不是更改.exe输出中的节布局或创建新节。在Linux下,我可以使用编译器属性“section”和链接器脚本来实现我的目标。Visual C++中是否存在等价解?非常感谢:-)

允许您指定代码将放入的段。除了能够指定名称外,编译器还保留了一堆名称,以便您可以根据需要推送和弹出当前状态。

在我将函数和数据放入不同的页面对齐部分后,我可以稍后将它们放入连续的内存区域吗?我该怎么做?例如,假设我在a.o中有text1、text2、data1节,在b.o中有text3、text2、data2节,并且a.o、b.o链接到创建c.exe。如何确保c.exe中的内存布局是(text1、text2、text3、data1、data2、.text、…)?@cyclone:我一点也不确定您是否可以。如果支持,那么模块定义文件显然是支持它的地方——但事实并非如此。