問題タブ [mixed-mode]

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 に答える
639 参照

c++-cli - アセンブリ ローダーが C++/CLI 混合モード アセンブリの GAC にチェックインしないのはなぜですか?

C++/CLI 混合モード アセンブリを参照する C# プロジェクトがあります。そのアセンブリはフォルダー内の PATH に保存され、GAC にも存在しますが、実行すると次のようになります。

System.IO.FileNotFoundException: ファイルまたはアセンブリを読み込めませんでした

バージョン 0.0.0.0 は、C++/CLI に Assembly バージョン クラスがないためですが、私が知る限り、これは問題ではありません。

実行中のプロセス モニター システムは、メイン プロセスと同じフォルダーでアセンブリを検索するだけであることがわかりました... PATH 検索 .. それが私が得たものです (PcsSocketCommunication500.dll は C++/CLI アセンブリで、黒は作業ディレクトリです):

ここに画像の説明を入力

ローダーが GAC または PATH をチェックしない理由について何か考えはありますか?

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

c# - 任意の CPU と x64 間のマネージ コード参照

x86 および x64 のフリーズ dll としてコンパイルされた混合モードの C++/CLI プロジェクトがあります。

「任意の CPU」としてコンパイルされたこのプロジェクトを使用する必要がある C# アプリがあります。c# アプリから正しい dll を正しく参照するにはどうすればよいですか? 参照の追加を右クリックすると、2 つの dll のうち 1 つだけを選択する必要があります。
私の「任意の CPU」C# アプリは、x64 プロセスとして実行されることもあれば、x86 プロセスとして実行されることもあります。

スマート構成ファイルを介してこれを行うことができると聞いたことがあります。

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

pointers - C++/CLI のマネージド クラスのアンマネージド オブジェクトにアンマネージド ポインターを渡す

次の状況を想定してみましょう。

C++/CLI コードで割り当てられた (および入力された) std::vector へのポインターをアンマネージ C++ に渡したいと考えています。単純に書くa->AnotherMethod(b)と、ベクトルはアンマネージ コードでは空です (たとえば、C++/CLI では 4 つの要素があり、a.

それを行う適切な方法は何ですか?

0 投票する
0 に答える
2484 参照

visual-studio-2010 - VS2010 でネイティブ C++ DLL から C++/CLI DLL への参照を追加しても、インポート ライブラリがリンカー コマンド ラインに追加されませんか?

底にたどり着くことができないように見える、やや奇妙な問題があります。しばらくの間、多くの異なるバージョンの Visual Studio を使用してビルドされ、現在のバージョンの Visual Studio に定期的に更新されている、ほとんどアンマネージドの C++ アプリケーションがあります。

私は今、次の問題に遭遇しました:

  • VS2010 では、既存のソリューションに 2 つの新しいプロジェクトを追加しました。どちらの新しいプロジェクトも DLL であり、一方はプレーンなアンマネージ C++ でビルドされ、一方は C++ と C++/CLI を組み合わせてビルドされているため、CLR サポート (/clr) を使用してビルドされています。2 番目の C++/CLI DLL は、システムの他のいくつかのコンポーネントで使用する必要があります。
  • [プロパティ] -> [共通プロパティ] -> [フレームワークと参照] を使用して、2 つの新しい DLL を依存関係として 3 つ目の DLL に追加します。3 番目の DLL は .NET について何も知らず、純粋なネイティブのアンマネージ C++ で実装されています。新しい DLL は依存関係の設定に正しく表示され、新しい参照はソリューションのビルド順序が影響を受ける (正しい) という意味で機能しますが、何らかの理由で、プレーン ネイティブ C++ DLL のインポート ライブラリのみが両方のライブラリを参照する DLL のリンカー コマンド ライン。2 番目の混合ライブラリはインポート ライブラリを生成しますが、VS2010 はインポート ライブラリをリンカー コマンド ラインに追加しないため、いくつかの未解決の外部シンボルが発生することが予想されます。
  • ライブラリの他のすべての設定が同じであるため、この動作をトリガーするように見える 1 つの設定は、共通言語ランタイム サポートを使用して DLL をビルドすることです。

現在、この問題の回避策があります - インポート ライブラリを手動の依存関係として追加するだけです - しかし、他の誰かがこの問題に遭遇したかどうか、また回避策なしでこの機能を期待どおりに動作させる方法があるかどうか疑問に思っていましたか?

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

.net - 混合モード アセンブリのシグネチャにアンマネージ型を含むメソッドをエクスポートする

オプションで構築された混合モードのアセンブリがあり/clrます。オプションで構築された別の混合モードアセンブリで使用するために、そこからクラスをエクスポートしようとしてい/clrます。

私の問題は、メソッドのシグネチャにマネージド型とアンマネージド型が混在していることです。例えば:

最初は、これを__declspec(dllexport)実装する非参照クラスで使用しようとしました。これはエラーC3395: __declspec(dllexport) cannot be applied to a function with the __clrcall Calling Convention で失敗しました。これはおそらく、署名のマネージド型が原因です。私の次の試みは、ref代わりにクラスをクラスにすることでした。アセンブリがビルドされ、Reflector はエクスポートされたメソッドを次のように表示します。

しかし、クライアント アセンブリでは、エクスポートされたメソッドを参照できません...

... エラーC2039: 'Convert' : is not a member of 'XXX::AtlCStringConverter' が生成されます。署名が一致しない原因となる可能性のある異なる char タイプの混合などの明らかな間違いをチェックしました。

これらのエクスポートの試みはどちらも、マネージド型とアンマネージド型の混合が署名で並んで公開されているという点で、実際にはコーシャではないことを認識していますが、このマネージド型とアンマネージド型の混合は混合モード アセンブリ内では問題ないため、混合モードの DLL 間のシグネチャでこのタイプの混合を使用してタイプをエクスポートする方法はありませんか?

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

visual-c++ - ネイティブc++クラスをCLIプロジェクトにインポートする

私は、既存のネイティブc ++プロジェクト(同じソリューションファイル内の2つの別々のプロジェクト)をラップアラウンドするCLIプロジェクトを作成中です。マネージドクラスのメンバーとして、ネイティブクラスへのポインターを含めたいのですが。私がオンラインで読んだドキュメントから、これは、マネージコードとアンマネージコードの両方が同じプロジェクトに一緒にある場合に実行できます。ネイティブコードとマネージコードが別々のプロジェクトにある場合、唯一のオプションは、2つのプロジェクト間でdllimport属性とdllexport属性を使用し、ネイティブコードクラス関数を静的関数としてエクスポートすることです。

これらは私の唯一のオプションですか、それとも2つの別々のプロジェクト間でネイティブクラス全体をインポートおよびエクスポートできますか?これにより、マネージラッパーの設計方法が決まるためです。前もって感謝します。

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

visual-c++ - 'cli::array から変換する方法^' から 'CDWordArray &'

私の MFC コードには次の機能があります。

次のように、別の CPP プロジェクトを通じてこれを呼び出します。

しかし、私はエラーが発生します

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

visual-studio-2010 - C++/CLI 混合モードのデバッグがハングする (頻繁に)

混合モードの C++/CLI でネイティブ アプリケーションを使用してデバッグしているときに、プロセス ハングの問題に直面しています。これは耐え難いことです。私のデバッグのほぼ 70% でこれが発生し、プロセスを何度も再起動する必要があります。

これに対する修正プログラムまたは解決策はありますか?

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

apache - IE7およびIE8のHTTPSおよびHTTP混合コンテンツ

ほとんどsslベースにしたいアプリケーションがありますが、IE7とIE8のhttpsページでhttpリンクを共存させることができます。混合コンテンツを配置すると(https提供ページにhttpリンクを埋め込む)、IEから混合コンテンツの警告が表示されます。これを回避する方法はありますか?セキュリティ証明書を使用していますが、特定の証明書は混合コンテンツを処理しますか?FirefoxとChromeはエラーをスローしません...何かアイデアはありますか?

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

.net-4.0 - .net 4 デバッグ API により、debugee でアクセス違反が発生する

.net 4 デバッグ API が起動時にアプリケーションの状態を何らかの形で破損させる方法はありますか?

私が持っている問題は次のとおりです。

  • .net デバッグ API (visual studio 2010、sharp development 4、mdbg) を使用してデバッガー内からアプリケーションを起動すると、さまざまなランダム アクセス違反が発生します。
  • .net デバッグ API (delphi 2007、sos 拡張機能付きの windbg) を使用せずにデバッガー内からアプリケーションを起動すると、すべて正常に動作します。
  • アプリケーションを直接起動し、後でデバッガーをアタッチすると (Visual Studio 2010、sharp development 4、mdbg、delphi 2007、windbg など)、すべて正常に動作します。
  • .net 3.5 と clr 2.0 に戻せば、まったく問題ありません。

マネージ デバッグ API の .net 3.5 から 4.0 への変更により、アプリケーションを起動するとアクセス違反がスローされる原因は何ですか?

アプリケーションは Delphi (アンマネージド) と C# (マネージド) で書かれており、マネージド vclを使用して相互運用を行っています。

この問題を再現するための例をほとんど挙げることができないので、この質問に答えることは不可能かもしれないことを認識していますが、デバッグ API についてより深い洞察を持っている人が正しい方向へのヒントを与えてくれたり、絞り込むのを手伝ってくれたりすることができれば、とてもありがたいです。