Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将VB6中的Chr转换为C#_C#_Vb6_Char_Chr - Fatal编程技术网

将VB6中的Chr转换为C#

将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#中执行相同的

我正在将一些硬件通信代码从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#中执行相同的操作?

m_startQuest+=Encoding.ASCII.GetString(
新字节[]{254,地址+8,地址,28,128,3}
);
为什么是字节。Net
char
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}
);
为什么是字节。Net
char
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}
);
为什么是字节。Net
char
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}
);
为什么是字节。Net
char
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 }
);