web-dev-qa-db-ja.com

C#をC ++に変換する方法

誰かがC#をC++に変換するのを手伝ってくれませんか?ここに例があります:

using System;
using System.Net;
using System.Text;
using System.IO;
using System.Threading;
namespace read_website
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                DownloadString("http://www.xxx.asp");
                Thread.Sleep(100);//update every 100 millisecoand 
            }
        }

        public static void DownloadString(string address)
        {           
            WebClient client = new WebClient();
            string website = client.DownloadString(address);
            get_Current_X1_value(website);
        }

        static void get_Current_X1_value(string web)
        {
            int x = web.IndexOf("Current X1 value:");
            string part1 = web.Substring(x, 100);
            string[] array = part1.Split('>', '<');
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i].Contains("Current X1 value:"))
                    Console.Write(array[i]);
                if (array[i].Contains("W"))
                    Console.WriteLine(array[i]);
            }

        }
    }
}

実際には、UNIXでC#とC++を混在させるのは複雑なので、C#をC++に変換しようとしているので、どんな助けでも大歓迎です

返信、ヘルプ、時間をありがとうございました。

10
make

実際、C#とC++をUNIXで混在させるのは複雑なので、C#をC++に変換しようとしています

Mono を検討しましたか?これは、Unixで既存の.NETアプリケーションを変換して実行するために、C++の学習を始める前に必ず確認する価値のあるものです。また、バイナリ互換性があるため、既存のアセンブリを再コンパイルする必要もありません。

22
Darin Dimitrov

Unixマシンで実行できるようにC#をC++に直接変換することはほぼ不可能です。

これは主に、.NET Frameworkが(C++から)Unixマシンで利用できないためです。 Monoを使用すると、多くのC#/。NETプログラムを実行できますが、C++/CLI(.NET Frameworkを直接操作できるC++拡張機能)はサポートされません。

言語の変換は可能です-アプローチの違い(C#でのガベージコレクションなど)により困難ですが、フレームワークの呼び出しは異なるライブラリへの移植を必要とし、多くの場合、直接の翻訳には適していません。

たとえば、上記のコードでは、Webアクセス用のC++ライブラリを決定する必要があります。その選択を行うと、そのライブラリを呼び出してWebサイトの文字列をダウンロードするために必要なコードが決まります。

8
Reed Copsey

C#を学び、C++を学び、書き換えに多くの時間を費やしてください。

または、C#アセンブリの PInvoke を使用してC++ dllを呼び出します。

または マネージC++を使用して/ clrスイッチでコンパイル と記述します。結果のアセンブリは、C#プロジェクトから参照および使用できます。

8

私は C#からC++へのコンバーター を時々使用しています。 c#からc ++またはc ++/cliへのスニペット変換に最適です。

5
igorushi

ヴァラを見てみましょう。 ValaはC#に似た言語で、Cに変換してから実行可能ファイルに変換します。 C#との違いはほとんどありません。ただし、脳を使用する必要があります。

4
Samuel Allan

CoreRTを検討してください。これは、アプリケーションを実行するためにCLRがターゲットプラットフォームに存在する必要をなくすことを目的とする.NETプロジェクトです。代わりに、指定されたC#コードからC++コードを生成します。そのC++コードは、C++をサポートするターゲットプラットフォームでコンパイルおよびリンクされます。

Microsoftブログの投稿によると、「C#コードを作成して新しいIoTデバイスで「そのまま」機能させたい場合、RyuJITで動作するマシンコードを生成できるようになるまで、選択肢はありません。そのプロセッサとオペレーティングシステム。」 C#をC++にクロスコンパイルすることにより、.Net開発者は、.Netが特定のプラットフォームに展開されるのを待つ必要なく、アプリケーションを提供できます。

https://github.com/dotnet/corert

3
zumalifeguard

編集:
記載されているサイトは廃止されました。参考のためにここで古い答えを残しておきます...

古い答え:
これは、プロセスを自動化するオンラインコンバータです。 ...

Varycodeオンラインコンバーター

C#からC++への変換と、Ruby、Python、Java&VBのコンバーターへのコンバーターと同様に、元に戻すことができます!

編集:
C++(およびJava)機能が削除されたようです-一時的に表示されますが、長い間削除されています。うまくいけば、彼らはすぐに復活するでしょう!
他の一部の言語(VB、Ruby、Python、Boo)でも引き続き機能します。

3
noelicus

これは、C#からC++へのコンバーターを見つけることができるWebサイトです。

https://github.com/ASDAlexander77/cs2cpp

C#からC++コードを生成してコンパイルするには、いくつかの手順を実行するだけです。さらに、このアプリケーションはC#コードをクロスプラットフォーム互換のC++に変換します。

1
Alexander77

ここですでに述べたように、ライブラリの翻訳は問題になる可能性がありますが、場合によっては役立つ可能性がある1つのオープンソースプロジェクトは次のとおりです。

http://alexalbala.github.io/Alter-Native/

メインページからの引用:

.NETなどの高水準言語からC++などのネイティブ言語にアプリケーションを簡単に移植するためのツールを提供します。これは研究プロジェクトであり、UPC-BarcelonaTechとAlterAid S.L.のコラボレーションにより開発中です。

0
Martin Vahi