問題タブ [language-interoperability]

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.

0 投票する
1 に答える
671 参照

c# - C# プロジェクトで C++ API を使用する

C# プロジェクトで C++ API (一連のヘッダー ファイルと CPP ファイル) を使用することはできますか?

.objこれらのファイルをまたはファイルにコンパイル.libして、Visual C# プロジェクトに含めることは可能でしょうか? に対しても同様のことが行われCrypto++ます。

可能であれば、これによる欠点はありますか?

コンテキストとインポート情報:

  • C++ API は NWCreate と呼ばれ、Autodesk Navisworks によって開発されました。
  • Microsoft Visual Studio C# 2010 を使用しています
  • C# には大規模な既存のコード ベースがあり、navisworks プラグインで実行する操作の多くは既に C# でコーディングされています (私たちが作成した他のオートデスク プロジェクトから)。したがって、これらすべての操作を C++ で書き直さなければならないということは、車輪の再発明です。
0 投票する
1 に答える
90 参照

objective-c - swift コードから objc 列挙型の便利なプリントアウトを取得するにはどうすればよいですか?

「返された電子メール foo@bar の検証 (列挙値)」を生成します (これは明らかに実用的ではありません)。これ:

コンパイルしない

VerifyEmailViewController.swift:22:21:「YOIDCVerificationStatus」は「CShort」に変換できません

列挙型は次のように宣言されていますが:

0 投票する
1 に答える
86 参照

c# - Microsoft 以外のクライアントからの WCF サービス コールバックへのアクセス

WCF は相互運用可能であると想定されており、WCF サービスは Microsoft および Microsoft 以外のクライアントからアクセスできますが、WCF コールバック サービスにアクセスできるのは Microsoft クライアントのみです。問題は、Microsoft 以外のクライアントが WCF コールバック サービスにアクセスできるかどうかです。Microsoft サービスと Microsoft 以外のクライアントの間で双方向チャネルをアクティブにする方法はありますか?

0 投票する
2 に答える
695 参照

java - Java で C コードを実行する方法

私は Java が優れた高水準言語であることを発見しましたが、その基礎となる言語である C の速度と柔軟性がいくらか欠けています。

Android OS が C と Java で書かれていることを考えると、これら 2 つの言語は互いにうまく補完し合っているように思われます。

CコードをJavaプログラムにインポートするにはどうすればよいですか?

PS。Android OS でこれを行う方法を知っていればボーナス ポイントです。

0 投票する
2 に答える
952 参照

java - プラットフォームに依存しない Java <-> C# 相互運用性

Java プロジェクト内で既存の C# ソースを使用したいと考えています。これまでのところ、Java Native Interface (JNI) などを使用するのは非常に簡単なので、これは大きな問題にはなりません。問題は、ソフトウェアが Windows 以外の OS でも実行されることです。そのため、C# ソースを Mono でコンパイルして、Linux などで実行可能にすることができます。しかし、Java 内での統合はどうでしょうか? JNI または C# <-> Java 相互運用性のための COM ベースのソリューションは OS に依存し、Windows などでのみ機能します。

考えられる解決策の 1 つは、Web サービスの実装です。この問題を解決する方法の別のアイデアはありますか? 代替の提案に非常に感謝します!

どうもありがとう!

よろしく

0 投票する
1 に答える
692 参照

c++ - GNU Fortran と C の相互運用性

現在、Windows で Intel ツールを使用してコンパイルされた大規模な C/Fortran 混合コード ベースがあります。Linux 上の GNU ツールに移植するよう依頼されました。多かれ少なかれランダムに、バージョン 4.8 を選択しました。

C 関数が Fortran から呼び出される場合、相互運用性は次のようになります。

インテル Fortran コンパイラーは常に大文字のシンボルを生成するため、これは正常に機能します。しかし、GNU Fortran コンパイラは常に小文字のシンボルを生成するため、リンカ エラーが発生します。

-fcase-upperGNU Fortran コンパイラには、大文字のシンボルを生成するオプションが呼び出されていましたが、これは構成可能すぎて誰にとっても適切ではないようで、削除されました (正確な時期はわかりません)。

この機能を使用してISO_C_BINDING、コンパイラに大文字と小文字を区別する名前を強制的に生成させることができます。

これによりリンカー エラーは解決されますが、文字列パラメーターの処理方法が変わります。長さパラメーターは提供されなくなりました。したがって、このメソッドを使用するには、現在この方法で動作するすべての関数のインターフェイス定義を追加するだけでなく、そのような関数を呼び出すたびに文字列がどのように処理されるかを変更する必要があります。 null で終了します。

そのような関数をすべて小文字にすることもできますが、もちろん、インテル コンパイラーは引き続き大文字のシンボルを生成するため、既存のビルドが壊れてしまいます。

そのような関数は約 2,000 あるので、実行不可能な量の作業に思えます。そこで、私の質問は次のとおりです。関数呼び出しのセマンティクスを変更せず、インテル® コンパイラーを使用して既存のビルドを壊さずに、リンク エラーを解決するにはどうすればよいですか?