`
cfeers
  • 浏览: 138570 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

C++数据类型与C#对应关系 c#调用WINDWOS API时,非常有用

阅读更多

C++           输入输出    C#
==================================
char chr[255]   O    StringBuilder
KCA_DIR            I    int
LPCSTR             I    string
int                        I    int
LPSTR              O    StringBuilder
int*                      O    out int
DWORD              I    int
DWORD*          O    out int
BOOL                 I    bool
Rc_DBMgr          I    IntPtr
long*                  O    out long

 

 

API与C#的数据类型对应关系表
API数据类型 类型描述 C#类型 API数据类型 类型描述 C#类型
WORD 16位无符号整数 ushort CHAR 字符 char
LONG 32位无符号整数 int DWORDLONG 64位长整数 long
DWORD 32位无符号整数 uint HDC 设备描述表句柄 int
HANDLE 句柄,32位整数 int HGDIOBJ GDI对象句柄 int
UINT 32位无符号整数 uint HINSTANCE 实例句柄 int
BOOL 32位布尔型整数 bool HWM 窗口句柄 int
LPSTR 指向字符的32位指针 string HPARAM 32位消息参数 int
LPCSTR 指向常字符的32位指针 String LPARAM 32位消息参数 int
BYTE 字节 byte WPARAM 32位消息参数 int

 

 

Wtypes.h 中的非托管类型

非托管 C 语言类型

托管类名

说明

HANDLE

void*

System.IntPtr

32

BYTE

unsigned char

System.Byte

8

SHORT

short

System.Int16

16

WORD

unsigned short

System.UInt16

16

INT

int

System.Int32

32

UINT

unsigned int

System.UInt32

32

LONG

long

System.Int32

32

BOOL

long

System.Int32

32

DWORD

unsigned long

System.UInt32

32

ULONG

unsigned long

System.UInt32

32

CHAR

char

System.Char

ANSI 修饰。

LPSTR

char*

System.String System.StringBuilder

ANSI 修饰。

LPCSTR

Const char*

System.String System.StringBuilder

ANSI 修饰。

LPWSTR

wchar_t*

System.String System.StringBuilder

Unicode 修饰。

LPCWSTR

Const wchar_t*

System.String System.StringBuilder

Unicode 修饰。

FLOAT

Float

System.Single

32

DOUBLE

Double

System.Double

64

分享到:
评论

相关推荐

    C#中调用Windows API时的数据类型对应关系.pdf

    在C#中调用Windows API时,正确地映射数据类型是确保跨语言互操作性的关键。本篇文章将深入解析给定文档中的数据类型对应关系,帮助开发者更好地理解和应用这些映射规则,从而提高跨平台应用程序的开发效率。 ### ...

    C#与C++类型对应表

    C#与C++类型对应表是指在使用.Net互操作时,需要将C++数据类型转换为C#数据类型,以便正确地调用C++的API。在这个文档中,我们对C++数据类型和C#数据类型进行了对照,以便开发者能够快速地查找和转换类型。 首先,...

    C#调用C++ Api或接口转换工具

    首先,C#调用C++ API主要通过以下两种方式: 1. **P/Invoke(Platform Invoke)**:这是.NET Framework提供的一种机制,允许C#代码直接调用本地DLL中的函数。通过定义对应的委托类型和DllImport特性,可以指定C++库...

    C#调用DLL中非托管C++函数参数类型对照

    C#调用DLL中非托管C++函数参数类型对照 在C#编程中,经常需要调用C++中的DLL类库,这就需要了解C++中的函数参数类型在C#中的对应关系。以下是基本数据类型的对照: * 一维数组:C#参数在基本类型前加ref或out,out...

    C#中调用Windows API的要点.rar_API_C#调用C_C# windows_windows

    C#中的数据类型和Windows API的类型之间存在对应关系。例如,`int`对应`int`, `string`对应`LPCTSTR`(在C#中通常使用`MarshalAs(UnmanagedType.LPTStr)`),`IntPtr`对应`HWND`等。确保正确地映射这些类型是成功...

    C++ 与 C# 数据类型对照(全)

    本人慢慢在网上各地收集及自己验证后总结的C/C++和C#的数据类型对照.没有完全 验证..组织部 类型太多了..要怪就怪C/C++的type define这个该死的语法 吧...

    C#调用Windows自身的API开发摄像头拍照和摄像功能

    总之,C#调用Windows API进行摄像头操作虽然涉及较多底层细节,但通过合理的封装和抽象,可以使代码保持清晰和易于维护。在实际项目中,还可以考虑使用第三方库如AForge.NET或Emgu CV,它们提供了更高级别的接口,...

    c++和c#数据类型对照

    综上所述,C++与C#之间的数据类型映射涵盖了基本类型、指针类型、字符串类型以及特定API调用中的类型。理解这些映射规则对于实现跨语言调用至关重要。此外,还需要注意到C#中使用了`MarshalAs`属性来控制不同类型...

    C#中调用Windows API的要点,在.Net Framework SDK文档中,关于调用Windows API的指示

    1. **P/Invoke**:P/Invoke是.NET Framework提供的一种机制,允许托管代码(如C#)调用非托管代码(如C或C++编写的Windows API)。这通常是通过在C#类中定义带有`[DllImport]`属性的静态方法来实现的。 2. **...

    C#与C++数据类型

    在使用C++和C#进行跨语言交互时,如调用Windows API,需要理解这些类型间的转换规则。例如,C++中的指针在C#中通常映射为`IntPtr`,字符串则可能需要使用`P/Invoke`的`MarshalAs`特性来指定正确的类型。 对于C++的`...

    C#Winform调用Windows API user32.dll实现鼠标事件示例-自动点击工具

    主要是调用Windows API user32.dll动态库,将其引入到项目之中,此为非托管代码,使用DllImport特性即可。这里也简单介绍下user32动态库,user32.dll是Windows用户界面相关应用程序接口,用于包括Windows处理,基本...

    C++调用C#的DLL实例程序

    由于C++并不直接支持.NET框架,因此调用C#的DLL需要使用C++/CLI(Managed C++),这是一种扩展的C++方言,允许与.NET环境交互。C++/CLI提供了一种桥梁,让传统的C++代码能够访问托管代码(如C#的DLL)。 调用步骤...

    c# 调用windows API的实例

    在C#编程中,有时我们需要调用Windows API来实现...总的来说,理解P/Invoke和如何正确匹配API函数签名是C#调用Windows API的关键。通过这种方式,我们可以利用.NET Framework的便利性同时访问丰富的Windows系统功能。

    C# 与C++ 数据类型对照

    在 API 调用中,C++ 和 C# 数据类型的对应关系也需要注意。例如,`LONG` 和 `LONG32` 都是 32 位有符号整数,在 C# 中映射为 `int`;`DWORD` 和 `DWORD32` 是 32 位无符号整数,对应 `uint`;`BOOL` 在 C++ 中是 32 ...

    C#中调用API C#中调用API

    总的来说,C#调用API涉及到对API的理解、结构体的使用、类型转换、以及对安全和非安全代码的处理。虽然对于初学者而言可能会有些复杂,但熟悉这些基本概念和步骤后,调用API将变得更为得心应手。通过这样的方式,C#...

    C#调用C++DLL导出类

    总结来说,C#调用C++DLL中的类主要涉及以下几个步骤: 1. 在C++DLL中定义导出类及其方法。 2. 在C#中使用DllImport加载DLL,并定义C风格的函数接口。 3. 创建一个C#托管类,持有C++对象的指针,并提供相应的C#方法...

    C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.

    在C#调用C++时,需要注意数据类型的匹配。C#中的值类型(如int)与C++中的等效类型通常是兼容的,但引用类型(如字符串和数组)需要特别处理。例如,C++中的字符串可能需要转换为C#的`string`,而C#的数组需要使用...

    C#使用CLR调用C++的DLL库

    本主题将详细介绍如何在C#应用中利用CLR调用C++编写的DLL库,特别是在Windows环境下。我们将分为三个关键步骤进行讲解: 1. **创建C++ DLL库** - 首先,你需要创建一个C++动态链接库(DLL)项目。在Visual Studio...

    c#调用托管c++调用c++

    - 保持数据类型的一致性:在C#和C++之间传递数据时,必须确保类型匹配,考虑数据对齐和大小端问题。 - 错误处理:C++/CLI可以捕获.NET异常,而C++ DLL可能使用错误代码,需要适当地进行错误处理。 - 内存管理:托管...

    Win Api与C#数据类型对照表\api对照表

    了解Windows API与C#之间的数据类型对照表对于进行跨平台编程或者系统级开发至关重要。本篇文章将详细解析这两者之间的对应关系,并探讨如何在C#中使用Win API函数。 首先,我们来看标题中的“Win Api与C#数据类型...

Global site tag (gtag.js) - Google Analytics