将变量值从VB6转换为C#以便使用Win32
我从一些VB6代码中找到了一系列值。我需要把这段代码转换成C。我不知道如何读VB6。如何将此VB6转换为等效的C# 从一个签名判断将变量值从VB6转换为C#以便使用Win32,c#,vb6,C#,Vb6,我从一些VB6代码中找到了一系列值。我需要把这段代码转换成C。我不知道如何读VB6。如何将此VB6转换为等效的C# 从一个签名判断 [DllImport("coredll.dll")] private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam); 这需要这些类型的变量(如Msg param),我相信它们应该是 const int EM\u GETRECT= 我不知道如何
[DllImport("coredll.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
这需要这些类型的变量(如Msg param),我相信它们应该是
const int EM\u GETRECT=
我不知道如何将
&HB2
更改为int。我想应该是0x???
,但是我如何将这个小&HB2
转换为十六进制?用C表示十六进制十进制值的语法只是0x后跟数字的十六进制表示。(这个表示法在VB6和C中是相同的)所以你写
private const int EM_GETRECT = 0xB2;
Console.WriteLine(EM_GETRECT);
打印出178位小数
最后三个值(后缀为&)是长数据类型的VB变量。在C#中,数据类型int与VB long相同。 您仍然可以使用C#整数
按预期打印1用C#表示十六进制十进制值的语法只是0x后跟数字的十六进制表示形式。(这个表示法在VB6和C中是相同的)所以你写
private const int EM_GETRECT = 0xB2;
Console.WriteLine(EM_GETRECT);
打印出178位小数
最后三个值(后缀为&)是长数据类型的VB变量。在C#中,数据类型int与VB long相同。 您仍然可以使用C#整数
按预期打印1它只是指示数字以长整数形式读取,格式为十六进制。(在H之后) 如果需要,可以只使用这些值:
const int EM_GETRECT = 0xB2;
const int EM_SETRECT = 0xB3;
const int EM_SCROLLCARET = 0xB7;
const int ES_AUTOHSCROLL = 0x80;
const int ES_AUTOVSCROLL = 0x40;
const int ES_CENTER = 0x1;
它只是表示数字是以长整数形式读出的,格式为十六进制。(在H之后) 如果需要,可以只使用这些值:
const int EM_GETRECT = 0xB2;
const int EM_SETRECT = 0xB3;
const int EM_SCROLLCARET = 0xB7;
const int ES_AUTOHSCROLL = 0x80;
const int ES_AUTOVSCROLL = 0x40;
const int ES_CENTER = 0x1;
@史蒂夫-这种模式似乎适用于前3个。最后3个以
和结尾的是什么?&HB2-是十六进制代码&H表示十六进制,表示。。。所以C#等价物是0xB2。你差一点就成功了@史蒂夫-这种模式似乎适用于前3个。最后3个以和结尾的是什么?&HB2-是十六进制代码&H表示十六进制,表示。。。所以C#等价物是0xB2。你差一点就成功了!