读书人

这些代码是什么意思?能否翻译成C#语句

发布时间: 2012-04-25 19:32:32 作者: rapoo

这些代码是什么意思?能否翻译成C#语句?
public enum Status
{
IO_SUCCESS,
IO_FAILURE,
ERR_INVALID_PARAM,
ERR_ALREADY_CONNECTED,
ERR_INSUFFICIENT_MEMORY,
ERR_INVALID_DRIVER,
ERR_DRIVERLOAD_FAILURE,
ERR_DRIVER_EXCEPTION,
ERR_DRIVER_FAILURE,
WRITE_TIMED_OUT,
READ_TIMED_OUT,
}
public unsafe Status GetChannelLimits(string channelName, out string minValue, out string maxValue)
{
basic_string<char,std::char_traits<char>,std::allocator<char> > local4;
Status status = Status.IO_FAILURE;
if (channelName == null)
{
return Status.ERR_INVALID_PARAM;
}
std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{ctor}(&local4);
try
{
basic_string<char,std::char_traits<char>,std::allocator<char> > local3;
std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{ctor}(&local3);
try
{
basic_string<char,std::char_traits<char>,std::allocator<char> > local2;
std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{ctor}(&local2);
try
{
basic_string<char,std::char_traits<char>,std::allocator<char> > local;
this.m_pConversionManager.MarshalAsString(channelName, &local4);
basic_string<char,std::char_traits<char>,std::allocator<char> >* localPtr2 = &local;
status = GetChannelLimits(std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{ctor}(localPtr2, (basic_string<char,std::char_traits<char>,std::allocator<char> > modopt(IsConst)* modopt(IsImplicitlyDereferenced)) &local4), &local3, &local2);
minValue = new string(std.basic_string<char,std::char_traits<char>,std::allocator<char> >.c_str((basic_string<char,std::char_traits<char>,std::allocator<char> > modopt(IsConst)* modopt(IsConst) modopt(IsConst)) &local3));
maxValue = new string(std.basic_string<char,std::char_traits<char>,std::allocator<char> >.c_str((basic_string<char,std::char_traits<char>,std::allocator<char> > modopt(IsConst)* modopt(IsConst) modopt(IsConst)) &local2));
}
fault
{
___CxxCallUnwindDtor(std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{dtor}, (void*) &local2);
}
std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{dtor}(&local2);
}
fault
{
___CxxCallUnwindDtor(std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{dtor}, (void*) &local3);
}
std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{dtor}(&local3);
}
fault
{
___CxxCallUnwindDtor(std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{dtor}, (void*) &local4);
}
std.basic_string<char,std::char_traits<char>,std::allocator<char> >.{dtor}(&local4);


return status;
]
}




[解决办法]
翻人家源码是不好的。
[解决办法]
求大虾出现!
[解决办法]
只知道开头定义了一个枚举
[解决办法]
你把每个英文单词翻译一下 估计就可以理解一半了
[解决办法]
vc.net的代码。楼主反编译过来的吧。
vc.net可以混编非托管代码。
楼主只弄了其中一部分。不全。

[解决办法]
C++/CLR中混用了模板等东西,
建议找个用过CPP的人,用.net重写,或者直接用CPP做算了

这样用下去,你的代码永远都是unsafe的

如果是因为使用了第三方dll,用cpp/clr做个wrapper,
主要也就是指针注意处理一下。
[解决办法]
公共枚举状态
{
IO_SUCCESS,
IO_FAILURE,
ERR_INVALID_PARAM,
ERR_ALREADY_CONNECTED,
ERR_INSUFFICIENT_MEMORY,
ERR_INVALID_DRIVER,
ERR_DRIVERLOAD_FAILURE,
ERR_DRIVER_EXCEPTION,
ERR_DRIVER_FAILURE,
WRITE_TIMED_OUT,
READ_TIMED_OUT,
}
公共不安全状态GetChannelLimits的(channelName串出串MINVALUE出字符串MAXVALUE)
{
basic_string的<字符的std :: char_traits <char>,性病::的分配器<char>> LOCAL4;
状态状态= Status.IO_FAILURE;
如果(channelName == NULL)
{
返回Status.ERR_INVALID_PARAM;
}
std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>> {构造函数}(&LOCAL4)。
尝试
{
basic_string的<字符的std :: char_traits <char>,性病::的分配器<char>> local3;
std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>> {构造函数}(&local3)。
尝试
{
basic_string的<字符的std :: char_traits <char>,性病::的分配器<char>> local2;
std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>> {构造函数}(local2)。
尝试
{
basic_string的<字符的std :: char_traits <char>的std ::分配器<char>>本地;
this.m_pConversionManager.MarshalAsString(channelName,与LOCAL4);
basic_string的<字符的std :: char_traits <char>的std ::分配器<char>> * localPtr2 = &local;
状态GetChannelLimits(std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>> {构造函数}(localPtr2,(basic_string的<字符的std :: char_traits <char>的std ::分配器<char>> MODOPT(IsConst)* MODOPT(IsImplicitlyDereferenced))&LOCAL4),与local3与local2);
MINVALUE =新的字符串(std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>。c_str((basic_string的<字符的std :: char_traits <char>的std ::分配器<char> > MODOPT(IsConst)* MODOPT(IsConst)MODOPT(IsConst))local3));
MAXVALUE =新的字符串(std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>。c_str((basic_string的<字符的std :: char_traits <char>的std ::分配器<char> > MODOPT(IsConst)* MODOPT(IsConst)MODOPT(IsConst))local2));
}
故障
{
___CxxCallUnwindDtor(std.basic_string <字符的std :: char_traits <char>,分配器的std :: <char>> {析构函数},(无效*)&local2。);
}
std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>> {析构函数}(local2)。
}
故障
{
___CxxCallUnwindDtor(std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>> {析构函数},(无效*)&local3);
}
std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>> {析构函数}(&local3)。
}
故障
{
___CxxCallUnwindDtor(std.basic_string <字符的std :: char_traits <char>,分配器的std :: <char>> {析构函数},(无效*)&LOCAL4);
}
std.basic_string <字符的std :: char_traits <char>的std ::分配器<char>> {析构函数}(&LOCAL4)。
返回状态;
]
}

读书人网 >C#

热点推荐