Cobol.Net到c#的转换器
本文关键字:转换器 Net Cobol | 更新日期: 2023-09-27 17:48:57
我们有一些microfocus Cobol系统。. Net,我们正在考虑转换为c#。
我们已经尝试打开dll的反射器,但然后我们只得到C代码。
谁有什么建议吗?
当我选择c# in reflector时,我得到的代码看起来像这样:
meminit(&(this._MF_OSBLOCK[0]), 0x20, 4);
this._MF_OSBLOCK[4] = 0x30;
this._MF_OSBLOCK[5] = 0x30;
this._MF_OSBLOCK[6] = 0x30;
this._MF_OSBLOCK[7] = 0x30;
meminit(&(this._MF_OSBLOCK[8]), 0x20, 30);
memcpy(&(this._MF_OSBLOCK[0x26]), &(_MF_LITBLOCK[0]), 2);
int num2 = 0;
do
{
memcpy(&(this._MF_OSBLOCK[40 + num2]), &(_MF_LITBLOCK[0]), 2);
}
while ((num2 += 2) < 0xc6);
memcpy(&(this._MF_OSBLOCK[240]), &(_MF_LITBLOCK[2]), 4);
你可以放心地假设你正在看c#代码,Reflector没有C的代码转换器。你不能假设Cobol编译器正在生成相同的c#代码。它没有义务这样做。它可以自由地使用在特定于编译器的运行时程序集中定义的辅助函数。不像Microsoft.CSharp.dll.
获得使用类似C语言名称的帮助程序的代码并不意外,C语言在很长一段时间内一直是一种随处运行的语言。编译器通常是语言翻译器,在这种情况下,从Cobol转换到C,然后使用C编译器生成特定于平台的机器码。写一次,到处跑。把C想象成过去的IL。
你当然可以编译并运行生成的c#代码,但一定要使用特定于Cobol的汇编参考。你可能需要从GAC中找出它。就获得体面的c#代码的运行开始而言,很难。语言之间的差异太大了
在Reflector中打开。net dll肯定不会显示C代码。它可能会显示托管c++代码,但这可以通过简单地在工具栏的语言组合框中选择c#来更改。
考虑使用FileDisassembler插件,它允许从程序集创建一个完整的项目。