内核模式驱动程序组件

问题描述 投票:0回答:1

我试图从内核模式 Windows 驱动程序调用内联汇编,但我一直给我一个链接器错误,而且我似乎无法修复它,我已经坚持了几天了。我在另一个非常小的项目中重新创建了该错误,所以也许其他人可以修复它并告诉我如何做。 https://github.com/Jules707/DriverAssembly。这是我遇到的错误error-image。预先感谢!

c assembly linker kernel
1个回答
0
投票

问题似乎是名称损坏。由于您的文件具有 .cpp 扩展名,编译器假定它包含 C++ 代码(并假定它还引用 C++ 代码)。在 C++ 中,可以有多个同名的函数,每个函数都具有一组不同的参数。然后,编译器会生成一个非常特定版本的 MainAsm() 的引用(即使您只有一个版本)。您可以在错误消息中看到这一点:链接器正在寻找一个奇怪的名为 MainAsm@@YAXXZ 的符号。

尝试这样的事情(在.cpp中):

extern "C" {
   void inline MainAsm(void);
}
© www.soinside.com 2019 - 2024. All rights reserved.