将VB6中的Chr转换为C#
我正在将一些硬件通信代码从VB6翻译成C#,但som通信出现问题,需要向设备发送字符。VB6代码如下所示:将VB6中的Chr转换为C#,c#,vb6,char,chr,C#,Vb6,Char,Chr,我正在将一些硬件通信代码从VB6翻译成C#,但som通信出现问题,需要向设备发送字符。VB6代码如下所示: Dim STARTQUEST As String STARTQUEST = Chr(254) + Chr(address + 8) + Chr(address) + Chr(20) + Chr(128) + Chr(3) 我已经完成了这个C代码 但是我觉得我从他们那里得到的结果不一样。至少在调试中,STARTQUEST字符串看起来很不一样。有没有其他方法可以让vb6函数在C#中执行相同的
Dim STARTQUEST As String
STARTQUEST = Chr(254) + Chr(address + 8) + Chr(address) + Chr(20) + Chr(128) + Chr(3)
我已经完成了这个C代码
但是我觉得我从他们那里得到的结果不一样。至少在调试中,STARTQUEST
字符串看起来很不一样。有没有其他方法可以让vb6函数在C#中执行相同的操作?m_startQuest+=Encoding.ASCII.GetString(
新字节[]{254,地址+8,地址,28,128,3}
);
为什么是字节。Netchar
type支持Unicode,并且可能大于255。因此,使用字节更安全
更新:
VB6中的运行时错误
Dim s作为字符串
s=Chr(1)+Chr(256)
调试。打印s
结果是257英寸
(((字符)1)+((字符)256))
结果是c#中的字符串
((字符)1+“”+((字符)256))
c#中的编译时间错误。
m_startQuest+=Encoding.ASCII.GetString(
新字节[]{254,地址+8,地址,28,128,3}
);
为什么是字节。Netchar
type支持Unicode,并且可能大于255。因此,使用字节更安全
更新:
VB6中的运行时错误
Dim s作为字符串
s=Chr(1)+Chr(256)
调试。打印s
结果是257英寸
(((字符)1)+((字符)256))
结果是c#中的字符串
((字符)1+“”+((字符)256))
c#中的编译时间错误。
m_startQuest+=Encoding.ASCII.GetString(
新字节[]{254,地址+8,地址,28,128,3}
);
为什么是字节。Netchar
type支持Unicode,并且可能大于255。因此,使用字节更安全
更新:
VB6中的运行时错误
Dim s作为字符串
s=Chr(1)+Chr(256)
调试。打印s
结果是257英寸
(((字符)1)+((字符)256))
结果是c#中的字符串
((字符)1+“”+((字符)256))
c#中的编译时间错误。
m_startQuest+=Encoding.ASCII.GetString(
新字节[]{254,地址+8,地址,28,128,3}
);
为什么是字节。Netchar
type支持Unicode,并且可能大于255。因此,使用字节更安全
更新:
VB6中的运行时错误
Dim s作为字符串
s=Chr(1)+Chr(256)
调试。打印s
结果是257英寸
(((字符)1)+((字符)256))
结果是c#中的字符串
((字符)1+“”+((字符)256))
c#中的编译时间错误。
使用(Char)cast可以了解VB6的ChrW(而不是Chr)函数的行为。VB6的Chr函数执行ANSIUnicode转换-要在C中复制此转换,可以使用System.Text.Encoding.Default.GetBytes()。使用(Char)cast可以获得VB6的ChrW(非Chr)函数的行为。VB6的Chr函数执行ANSIUnicode转换-要在C中复制此转换,可以使用System.Text.Encoding.Default.GetBytes()。使用(Char)cast可以获得VB6的ChrW(非Chr)函数的行为。VB6的Chr函数执行ANSIUnicode转换-要在C中复制此转换,可以使用System.Text.Encoding.Default.GetBytes()。使用(Char)cast可以获得VB6的ChrW(非Chr)函数的行为。VB6的Chr函数执行ANSIUnicode转换-要在C中复制此转换,可以使用System.Text.Encoding.Default.GetBytes()。一个选项是添加对Microsoft.VisualBasic的引用并使用Strings.Chr函数
在幕后所做的比您可能意识到的要多得多(请参见链接)。一个选项是添加对Microsoft.VisualBasic的引用并使用Strings.Chr函数
在幕后所做的比您可能意识到的要多得多(请参见链接)。一个选项是添加对Microsoft.VisualBasic的引用并使用Strings.Chr函数
在幕后所做的比您可能意识到的要多得多(请参见链接)。一个选项是添加对Microsoft.VisualBasic的引用并使用Strings.Chr函数
在幕后做的事情比你可能意识到的要多得多(参见链接)。从字符代码看,你应该使用
byte[]
而不是字符串。C和VB6之间是否存在差异,这就是使用byte[]
的原因?由于我知道的VB6代码正在工作:)从字符代码来看,您应该使用byte[]
而不是字符串。C#和VB6之间是否存在差异,这就是为什么要使用byte[]
而不是字符串?由于我知道的VB6代码正在工作:)从字符代码来看,您应该使用byte[]
而不是字符串。C#和VB6之间是否存在差异,这就是为什么要使用byte[]
而不是字符串?由于我知道的VB6代码正在工作:)从字符代码来看,您应该使用byte[]
而不是字符串。C#和VB6之间是否存在差异,这就是为什么要使用byte[]
而不是字符串?由于我知道的VB6代码正在工作:)好的,这使我得到了与原始代码相同的结果,但我喜欢safter的部分!是否有可能只是一些“显示错误”使vb6字符串看起来与C#字符串不同?好的,这会得到与我的原始代码相同的结果,但我喜欢更安全的部分!是否有可能只是一些“显示错误”使vb6字符串看起来与C#字符串不同?好的,这会得到与我的原始代码相同的结果,但我喜欢更安全的部分!是否有可能只是一些“显示错误”使vb6字符串看起来与C#字符串不同?好的,这会得到与我的原始代码相同的结果,但我喜欢更安全的部分!是否有可能只是某些“显示错误”导致vb6出现错误
String m_startQuest = "";
m_startQuest = m_startQuest + (Char)254 + (Char)(address + 8) + (Char)address + (Char)20 + (Char)128 + (Char)3;
Encoding.ASCII.GetString(
new byte[] { 1, 256 }
);