6

我如何静态地告诉 Visual C++ 将全局变量放置在内存中给定的绝对地址处,就像这样__attribute__((at(address)))

4

1 回答 1

1

可以做到,但我不相信有预定义的方法可以做到这一点,因此需要进行一些实验。即使在用户代码执行开始时在运行时创建变量,我也没有看到太多好处。

因此,首先使用allocate MS特定说明符指定要在其中初始化变量的部分/段。然后在真实场景中启动您的应用程序,转储它或调试它并查看变量出现的位置。注意重定位(有一些方法可以尝试强制不重定位,但不能保证始终遵守)。另一种方法是在您的应用程序中使用一些代码查找您定义的部分的地址。

如果由于某种原因无法获得一致的行为,您可以使用此实用程序来操作目标文件的虚拟地址。总而言之,除了一路上的障碍,但总的来说,如果你足够坚持,我不明白为什么你不能让它为你的特定场景工作。

于 2013-02-09T05:26:24.720 回答