問題タブ [cross-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - オブジェクトのリストを C++ から C# に渡す方法は?
ここで私の最初の質問:)
C# で記述されたフロント エンド UI を持つ C++ (ゲームのマップ エディター) で記述されたアプリケーションを使用しています。私はC#が初めてなので、C++側でできるだけ多くのことをしようとしています.
C# から、単純な変数型 (int および string) を持つ構造体のリストを返す C++ 関数を呼び出して、UI にある listBox にデータを入力できるようにします。これは可能ですか?C# で dll インポート関数をどのように記述すればよいですか?
ここで答えを探してみましたが、C# から C++ にリストを渡す方法に関する投稿しか見つかりませんでした。
C++ コード:
C# インポート関数:
編集:
Ed S からの投稿の後、C++ コードを struct PropData { PropData( const std::string aName, const int aId ) { myName = aName; } に変更しました。myID = aId; }
そして C# を [DllImport("MapEditor.dll")] static extern PropData GetPropData(); に
もちろん、GetPropData() はリストに変換されるものを何も返さないため、これはコンパイルされません。
Ed S. さん、私をここまで連れてきてくれてありがとう!
.net - c# から python およびその他の言語への protobuf-net またはプロトコル バッファ サービス
私は最近、protobuf-net とプロトコル バッファを見てきましたが、これまでのところ非常に印象的です。私が疑問に思っているのは、物事のサービス面です。Google ドキュメントの権利を理解していれば、.proto ファイルでサービスを宣言できます。私の質問は
- このサービス サポートは、protobuf-net または別の dotnet protobuf ライブラリに実装されていますか?
- サービス自体がプロトコル バッファのように言語を完全にサポートしていますか?
- .proto ファイルで宣言された宣言に基づいて、反対側でクライアントを生成するのはどれくらい難しいですか?
基本的に私は、可能であればprotobufを使用してwebまたはtcpベースのサービスを設定することを検討しています. 彼らと私自身の両方にとって簡単にアプリケーションに統合できるものが本当に欲しいです.protobufを内部で使用する予定なので、私の側で簡単に統合できることを願っています.
[編集] 追加情報 code.google.com/apis/protocolbuffers/docs/proto.html#services これは私が話していたタイプのサービスですが、どの言語が実際にそれをサポートしており、実際に何から得られるのかはわかりません.proto ファイルの宣言。
c# - .cs ファイルは .java ソフトウェアで動作しますか?
そこでGUIを作ろうと考えています。私の友人は、C# でそれを行う方法を知っていると私に言ったので、GUI をセットアップする際にその方法を使用しました。C# で作成された GUI を Java で使用できるようにする方法はありますか?
client-server - 言語を超えた双方向のクライアント/サーバー通信方法論?
クライアント、ロビー サーバー、ゲーム サーバーを備えたターン制のカード ゲームを作成しています。クロス言語かつ双方向の方法論にはどのようなものがありますか (例: クライアント要求 -> サーバー サーバー応答 -> クライアント、およびサーバー要求 -> クライアント クライアント応答 -> サーバー)?
私は JMS を調べましたが、私のニーズには重すぎると思います (このプログラムは小規模であり、複雑さのためにこのソリューションが適しているとは思いません)。REST について簡単に調べましたが、双方向の要件には合わないと思います。もちろん RMI もありますが、別の学習課題として、C++ やその他の言語でクライアントを開発できるようになりたいと考えています。
正直なところ、JMS は複雑すぎると思うので使いたくないので、少し途方に暮れていますが、TCP ソケットを使用するだけではなく、基本的な XML ベースのメッセージのプロトコルは、プログラムに適切な通信構造を提供します。
java - ソケットを介してオブジェクトを送信しますが、異なる言語のクライアント、オブジェクトをシリアル化するにはどうすればよいですか?
Javaシリアル化可能オブジェクトをクライアントに送信し、実行のためにJavaシリアル化可能オブジェクトを受信するJavaサーバーがあります。私のクライアントもJavaで書かれている場合、これは素晴らしいことです。これにより、問題が発生した場合でも通信を行うことができます。
しかし今、私は自分のプログラムをJavaクライアントだけでなく、C、Objective C、Python、またはPHPで記述できるように拡張したいと思います。そこで、Javaオブジェクトへのクライアント要求を「回避」してサーバーに送り返すために何かをしたいと思います。修道院のプロセスでは、JSONを使用してサーバーへのJavaオブジェクトを受け取り、構築できますが、JavaオブジェクトをクライアントへのJSONに変換するレイヤーも必要です。
私の質問は、JSON-Java翻訳レイヤーを作成することを除いて、他にそうする方法はありますか?また、サーバー側で一部のコードを変更する余裕はありますが、そのための主要言語としてJavaを使用する必要があります。助言がありますか?ありがとう。
php - PHP で暗号化、Python で復号化
PHP コード:
結果:
これを Python でどのように復号化できますか?
java - PHP クライアントを Java バックエンドに接続する
PHP クライアント コードを Java バックエンドに接続する必要があります。アクションは次のとおり
です。 1. http 要求が PHP クライアントから送信されます。
2.モデル上のJAVAコードとやり取りし、JAVAバックエンドを使用してNosqlにデータを保存します
私はこのphp-java ブリッジについて読みました
どちらがより良い PHP-JAVA ブリッジを使用できますか?
c# - C# は、引数を取る C++ コンストラクターを認識できません
C# で作成されたクラスがあり、作成された C++ クラスを参照したいと考えています。C# で C++ クラスのインスタンスを作成しようとすると、既定のコンストラクターは表示されますが、引数を持つコンストラクターは表示されません。
C++ cppClass コード:
C# コード:
2 番目のコードを使用すると、cppClass does not contain a constructor that takes 1 argument
.
C# プロジェクトから C++ への参照を設定しました。構造体と既定のコンストラクターは表示されますが、引数を持つものは表示されません。引数を渡すためにラッパーを作成する必要がありますか?
c# - クロス言語プラグイン アーキテクチャのエラー報告パターン
製品のプラグイン システムのインターフェイスを設計しています。現在のプラグインは C# で記述されますが、将来的には少なくとも C/C++ ラッパーを作成することを想定しています。
潜在的な言語の不一致を考慮して、エラーを処理する方法に困惑しています。通常、私はエラーに対して例外を使用しますが、言語間の例外メカニズムの違いにより、これは簡単ではなく、例外をサポートしていない言語もあると思います。
これが当てはまる場合、私が見ることができる唯一の他のパターンは次のとおりです。
A) すべての関数からエラー コードを返します。これにより、事前定義されたエラーのみが許可されます。アドホック/不明なエラーに関する情報はありません。
B) すべての関数から bool を返し、GetLastError() タイプの関数を提供します。スレッドの問題が発生する可能性があるため、私はこれに熱心ではありません (別のスレッドがエラーを読み取る前に変更します)。
C) すべての関数から bool を返し、プラグインが問題を記録するために使用できる LogError() 関数を API に提供させる。呼び出し時に特定のエラーにプログラムで反応するのが難しいため、これには熱心ではありません。
D) 入力可能なすべての関数呼び出しにエラー情報オブジェクトを渡します。
クロスランゲージ API 向けに進化したベスト プラクティスはありますか?
c# - 異なるプログラミング言語間でビジネスの概念を共有するには?
さまざまなプログラミング言語 (C++、C#、および Python) で実装され、ネットワークを介して相互に通信するコンポーネントから構築された分散システムを開発します。システム内のすべてのコンポーネントは、同じビジネス コンセプトで動作し、これらのコンセプトに関しても相互に通信します。
その結果、次の 2 つの課題に非常に苦労しています。
- これら 3 つの言語でのビジネス コンセプトの表現を同期させる
- これらの言語間でのビジネス コンセプトのシリアル化/逆シリアル化
この問題の単純な解決策は、同じデータ構造 (およびシリアル化コード) を 3 回定義することです (C++、C#、および Python の場合)。
残念ながら、このソリューションには重大な欠点があります。
- 多くの「コードの重複」が発生します</li>
- すべてを同期させるには、膨大な量の言語間統合テストが必要です
私たちが検討した別のソリューションは、ProtoBufs や Thrift などのフレームワークに基づいています。これらのフレームワークには、ビジネス概念が定義されている内部言語があり、C++、C#、および Python でのこれらの概念の表現が (シリアライゼーション ロジックと共に) これらのフレームワークによって自動生成されます。
このソリューションには上記の問題はありませんが、別の欠点があります。これらのフレームワークによって生成されたコードは、基礎となるビジネス概念を表すデータ構造と、これらのデータ構造をシリアライズ/デシリアライズするために必要なコードを結合します。
これにより、コード ベースが汚染されていると感じています。これらの自動生成されたクラスを使用するシステム内のコードは、このシリアル化/逆シリアル化ロジック (深刻な抽象化リーク) に「慣れている」ようになっています。
自動生成されたコードをクラス/インターフェースでラップすることで回避できますが、これは単純なソリューションの欠点に戻ります。
説明されている問題を回避するソリューションを推奨できる人はいますか?