c++ - 在 .NET 中使用 Windows API 函数

标签 c++ vb.net c++-cli

我前段时间在这里问了一个问题:COM vs non-COM DLL关于从 .NET 调用经典 C++ 程序。

答案(来自 Hans Passant)是用 Visual C++ 编写一个包装器类,这在我的项目中运行良好(我确实从另一位对 C++ 有更多商业经验的开发人员那里得到了一些帮助)。

我的问题是:是否为 WINAPI 中的某些函数创建了包装类。例如,下面的代码可以在没有包装类的情况下工作:

Imports System.Runtime.InteropServices
Imports System.Text

Public Class Form1

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function MessageBox(ByVal hwnd As IntPtr, <MarshalAs(UnmanagedType.LPStr)> ByVal lpString As String, <MarshalAs(UnmanagedType.LPStr)> ByVal lpString2 As String, ByVal cch As Integer) As Integer
    End Function

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        MessageBox(0, "HelloWorld", "HelloWorld", 0)
    End Sub
End Class

最佳答案

围绕 WINAPI 调用的现有包装类称为 System.Windows 命名空间。 ;-)

关于c++ - 在 .NET 中使用 Windows API 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15143425/

相关文章:

c++ - std::function 中的冗余构造函数重载?

c++ - 如何读取 Boost ASIO streambuf?

c++ - 如何改善我的文件写入方法以减小Wavefront Object文件的大小?

vb.net - 查找 Access 版本

c# - 如何检测 Windows 10 周年更新?

c# - 将 C# dll 导入到 C++ 托管代码 (.NET)

c# - 如何编写用于将 Qt 信号映射到 C# 事件的包装类(通过 C++/CLI)

c++ - NO 带有字符串数组的存储类或类型说明符

c++ - 未定义对 '__imp___..' SFML C++ 库的引用

vb.net - 每个循环都没有任何内容-如何处理?