我正在从 .net C# 迁移到 QT C++,我正在尝试使用此 Win32 函数在 QT 中模拟驱动器:
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool DefineDosDevice(int flags, string devname, string path);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern int QueryDosDevice(string devname, StringBuilder buffer, int bufSize);
上面的代码是用 C# 编写的,但我不知道如何在 QT 中使用它们,有人可以给我一个如何执行此操作以及如何在 QT 中使用任何 Win32 API 的示例吗?
最佳答案
查看 DefineDosDevice 的文档和 QueryDosDevice ,您会在底部的表格中看到它们都在“kernel32.lib”库中定义,并在“Windows.h”中声明(间接)。
在你的代码中,你应该#include <Windows.h>
: 然后您就可以直接给他们打电话了。
我不确定您的特定编译器/IDE,但如果您在链接时收到有关“未解析的引用”的错误,您可能需要将“kernel32.lib”(来自 Windows SDK)添加到您的库路径。
关于c++ - 在 QT for Windows 中使用 Win32 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11813782/