首页 > 编程语言 >转:C#与C++数据类型转换

转:C#与C++数据类型转换

时间:2023-04-11 09:22:05浏览次数:43  
标签:类型转换 C# System c++ ---- c# int C++ 变量名

(94条消息) C#与C++数据类型转换_c# c++类型转换_终有期_的博客-CSDN博客

c++:HANDLE(void *)           ---- c#:System.IntPtr 
c++:Byte(unsigned char)      ---- c#:System.Byte 
c++:SHORT(short)             ---- c#:System.Int16 
c++:WORD(unsigned short)     ---- c#:System.UInt16 
c++:INT(int)                 ---- c#:System.Int16
c++:INT(int)                 ---- c#:System.Int32 
c++:UINT(unsigned int)       ---- c#:System.UInt16
c++:UINT(unsigned int)       ---- c#:System.UInt32
c++:LONG(long)               ---- c#:System.Int32 
c++:ULONG(unsigned long)     ---- c#:System.UInt32 
c++:DWORD(unsigned long)     ---- c#:System.UInt32 
c++:DECIMAL                  ---- c#:System.Decimal 
c++:BOOL(long)               ---- c#:System.Boolean
c++:CHAR(char)               ---- c#:System.Char 
c++:LPSTR(char *)            ---- c#:System.String 
c++:LPWSTR(wchar_t *)        ---- c#:System.String 
c++:LPCSTR(const char *)     ---- c#:System.String 
c++:LPCWSTR(const wchar_t *) ---- c#:System.String 
c++:PCAHR(char *)            ---- c#:System.String 
c++:BSTR                     ---- c#:System.String 
c++:FLOAT(float)             ---- c#:System.Single 
c++:DOUBLE(double)           ---- c#:System.Double 
c++:VARIANT                  ---- c#:System.Object 
c++:PBYTE(byte *)            ---- c#:System.Byte[] 
c++:BSTR                     ---- c#:StringBuilder
c++:LPCTSTR                  ---- c#:StringBuilder
c++:LPCTSTR                  ---- c#:string
c++:LPTSTR                   ---- c#:[MarshalAs(UnmanagedType.LPTStr)] string 
c++:LPTSTR 输出变量名         ---- c#:StringBuilder 输出变量名
c++:LPCWSTR                  ---- c#:IntPtr
c++:BOOL                     ---- c#:bool  
c++:HMODULE                  ---- c#:IntPtr  
c++:HINSTANCE                ---- c#:IntPtr 
c++:结构体                   ---- c#:public struct 结构体{}; 
c++:结构体 **变量名           ---- c#:out 变量名 //C#中提前申明一个结构体实例化后的变量名
c++:结构体 &变量名            ---- c#:ref 结构体 变量名
c++:WORD                     ---- c#:ushort
c++:DWORD                    ---- c#:uint
c++:DWORD                    ---- c#:int
c++:UCHAR                    ---- c#:int
c++:UCHAR                    ---- c#:byte
c++:UCHAR*                   ---- c#:string
c++:UCHAR*                   ---- c#:IntPtr
c++:GUID                     ---- c#:Guid
c++:Handle                   ---- c#:IntPtr
c++:HWND                     ---- c#:IntPtr
c++:DWORD                    ---- c#:int
c++:COLORREF                 ---- c#:uint
c++:unsigned char            ---- c#:byte
c++:unsigned char *          ---- c#:ref byte
c++:unsigned char *          ---- c#:[MarshalAs(UnmanagedType.LPArray)] byte[]
c++:unsigned char *          ---- c#:[MarshalAs(UnmanagedType.LPArray)] Intptr
c++:unsigned char &          ---- c#:ref byte
c++:unsigned char 变量名      ---- c#:byte 变量名
c++:unsigned short 变量名     ---- c#:ushort 变量名
c++:unsigned int 变量名       ---- c#:uint 变量名
c++:unsigned long 变量名      ---- c#:ulong 变量名
c++:char 变量名               ---- c#:byte 变量名 //C++中一个字符用一个字节表示,C#中一个字符用两个字节表示
c++:char 数组名[数组大小]      ---- c#:MarshalAs(UnmanagedType.ByValTStr, SizeConst = 数组大小)] public string 数组名; ushort
c++:char *                   ---- c#:string //传入参数
c++:char *                   ---- c#:StringBuilder//传出参数
c++:char *变量名              ---- c#:ref string 变量名
c++:char *输入变量名          ---- c#:string 输入变量名
c++:char *输出变量名          ---- c#:[MarshalAs(UnmanagedType.LPStr)] StringBuilder 输出变量名
c++:char **                  ---- c#:string
c++:char **变量名            ---- c#:ref string 变量名
c++:const char *            ---- c#:string
c++:char[]                  ---- c#:string
c++:char 变量名[数组大小]    ---- c#:[MarshalAs(UnmanagedType.ByValTStr,SizeConst=数组大小)] public string 变量名; 
c++:struct 结构体名 *变量名  ---- c#:ref 结构体名 变量名
c++:委托 变量名              ---- c#:委托 变量名
c++:int                     ---- c#:int
c++:int                     ---- c#:ref int
c++:int &                   ---- c#:ref int
c++:int *                   ---- c#:ref int //C#中调用前需定义int 变量名 = 0;
c++:*int                    ---- c#:IntPtr
c++:int32 PIPTR *           ---- c#:int32[]
c++:float PIPTR *           ---- c#:float[]
c++:double** 数组名         ---- c#:ref double 数组名
c++:double*[] 数组名        ---- c#:ref double 数组名
c++:long                   ---- c#:int
c++:ulong                  ---- c#:int
c++:UINT8 *                ---- c#:ref byte //C#中调用前需定义byte 变量名 = new byte();  
c++:handle                 ---- c#:IntPtr
c++:hwnd                   ---- c#:IntPtr
c++:void *                 ---- c#:IntPtr  
c++:void * user_obj_param  ---- c#:IntPtr user_obj_param
c++:void * 对象名称         ---- c#:([MarshalAs(UnmanagedType.AsAny)]Object 对象名称
c++:char, INT8, SBYTE, CHAR---- c#:System.SByte  
c++:short, short int, INT16, SHORT ---- c#:System.Int16  
c++:int, long, long int, INT32, LONG32, BOOL , INT ---- c#:System.Int32  
c++:__int64, INT64, LONGLONG ---- c#:System.Int64  
c++:unsigned char, UINT8, UCHAR , BYTE ---- c#:System.Byte  
c++:unsigned short, UINT16, USHORT, WORD, ATOM, WCHAR , __wchar_t ---- c#:System.UInt16  
c++:unsigned, unsigned int, UINT32, ULONG32, DWORD32, ULONG, DWORD, UINT ---- c#:System.UInt32  
c++:unsigned __int64, UINT64, DWORDLONG, ULONGLONG ---- c#:System.UInt64  
c++:float, FLOAT ---- c#:System.Single  
c++:double, long double, DOUBLE ---- c#:System.Double  
Win32 Types ---- CLR Type  
Struct需要在C#里重新定义一个Struct
CallBack回调函数需要封装在一个委托里,delegate static extern int FunCallBack(string str);
unsigned char** ppImage替换成IntPtr ppImage
int& nWidth替换成ref int nWidth
int*, int&, 则都可用 ref int 对应
双针指类型参数,可以用 ref IntPtr
函数指针使用c++: typedef double (*fun_type1)(double); 对应 c#:public delegate double fun_type1(double);
char* 的操作c++: char*; 对应 c#:StringBuilder;
c#中使用指针:在需要使用指针的地方 加 unsafe
unsigned char对应public byte
typedef void (*CALLBACKFUN1W)(wchar_t*, void* pArg);
typedef void (*CALLBACKFUN1A)(char*, void* pArg);
bool BIOPRINT_SENSOR_API dllFun1(CALLBACKFUN1 pCallbackFun1, void* pArg);
调用方式为
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void CallbackFunc1([MarshalAs(UnmanagedType.LPWStr)] StringBuilder strName, IntPtr pArg);

 

标签:类型转换,C#,System,c++,----,c#,int,C++,变量名
From: https://www.cnblogs.com/lrzy/p/17305068.html

相关文章

  • arroyo single docker 镜像说明
    arroyosingledocker镜像使用了ubuntu作为基础镜像,里边包含了不少服务,同时基于supervisord进行服务管理具体dockerfile参考github我简单介绍一些其他服务supervisord配置/opt/arroyo/src/docker/single/supervisord.conf目录 [supervisord]nodaemon=tru......
  • 学习笔记395—Windows10 Docker安装详细教程
    思维导航前言DockerDesktop是什么?DokcerDesktop下载启用Hyper-V以在Windows10上创建虚拟机安装DockerDesktop配置阿里云镜像加速地址WindowsPowerShell查看Docker版本验证Docker桌面版可以正常使用通过启用WSL2安装DockerDocker学习系列文章前言:在上......
  • YACS2022年10月乙组
    T1:录制节目可以将原题转化成有\(n\)条线段,可以保留若干条线段,并且可以分成两部分,使得每部分的线段互不相交先将所有线段按右端点做升序排序,且按左端点做降序排序然后维护两个变量last1和last2last1:第一个部分的最后的端点last2:第二个部分的最后的端点尽量让\(\min(......
  • 迁移学习《Cluster-Guided Semi-Supervised Domain Adaptation for Imbalanced Medica
    论文信息论文标题:Cluster-GuidedSemi-SupervisedDomainAdaptationforImbalancedMedicalImageClassification论文作者:S.Harada,RyomaBise,KengoAraki论文来源:ArXiv2March2023论文地址:download 论文代码:download视屏讲解:click1摘要一种半监督域自适应方法,......
  • 每日学习记录20230406_bert_and_torch
    20230407:tensorflowtransformertf.name_scope:这个函数会规定对象和操作属于那个范围,但是不会对“对象”的“作用域”产生任何影响,也就是不是全局变和局部变量的概念.这个东西有很多种用法:withtf.name_scope("loss"):#这个名字是随意指定,看你想干什么xentropy......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-智能聊天机器人从0到1快速入门——官网推荐的
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • C++核心编程之-引用
    引用引用的基本使用作用:给变量起别名语法:数据类型&别名=原名引用的注意事项引用必须初始化引用在初始化后,不可以改变示例:#include<iostream>usingnamespacestd;intmain(){ inta=30; intb=50; //int&c;//这行错误,引用必须初始化 int&c=a......
  • Code-C++-fstream-输出到文件(待完善)
    Code-C++-fstream-输出到文件#include<fstream>#include<string>voidexportFile(std::stringstrFileName,intnVal){std::stringstrFilePath="./"+strFileName;std::ofstreamosFile(strFilePath.c_str(),std::ios::app|std......
  • java.lang.NoSuchMethodException: com.innovation.web.BuyServlet.$%7Bid%7D(javax.s
    问题描述我在html页面写了get到删除某条记录的url路径里去,然后一直显示这个错误,也到不了相应的后台方法里面去,就很离谱欸家人们!问题解决听从友友的建议,将之前的/deleteCarts/${id}改成了之前用过的那种样式,也就是/deleteCarts?id=${id},然后就成功跳转到那个后台servlet里面啦!......
  • 三日一练-C语言百题(001-005)
    进制转换:1//C语言算法:十进制转为二进制2#include<stdio.h>3intmain()4{5intb,i,c=0,a[30];6scanf("%d",&b);7while(b!=0)8{9i=b%2;10a[c]=i;11c++;12b=b/2;......