在 QT for Windows 中使用 Win32 API

5 c++ winapi qt

我正在从 .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);
Run Code Online (Sandbox Code Playgroud)

上面的代码是用 C# 编写的,但我不知道如何在 QT 中使用它们,有人可以给我一个例子,如何做到这一点以及如何在 QT 中使用任何 Win32 API?

小智 2

感谢您的任何答复!我的问题的答案是:

#include <Windows.h>

void MainWindow::on_pushButton_clicked()
{
    QString qstr1 = "Z:";
    QString qstr2 = getenv("tmp");
    DefineDosDevice(0, (LPCTSTR)qstr1.utf16(), (LPCTSTR)qstr2.utf16());
}

void MainWindow::on_pushButton_2_clicked()
{
    QString qstr = "Z:";
    DefineDosDevice(2, (LPCTSTR)qstr.utf16(), 0);
}
Run Code Online (Sandbox Code Playgroud)