問題タブ [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 投票する
2 に答える
329 参照

database - Berkeley DB を使用した混合 C++/CLI コード

モードを使用して C++/CLI で Berkeley DB を使用しようとしてい/clrます。私はこのコードを書きました:

編集:

コードは正常にコンパイルされますが、間違った出力が表示されます。保存String^ HexSig="D8B1048900ABFF8B"; してSigDb.dbから、同じ文字列を直接読み取って印刷しようとしています!. 結果は期待どおりに表示されませんがD8B1048900ABFF8B、ランダムな文字列として表示されます。何か案は?

編集後: このコード セグメントは常に実行されます。Console::WriteLine("Not Found !");

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

visual-c++ - マネージド ラッパー クラスに別のマネージド ラッパー クラスのプロパティを使用させる方法は?

アイデアは、コードを複製せずに再利用したいということです。以下では、UnManagedB は UnmanagedA から派生しています。以下に示すように、両方の構造体に対応するマネージド ラッパーがあります。ManagedB の ManagedA のプロパティを再利用できるように、ManagedA から ManagedB を派生させたいと考えています。問題は、両方のクラスがアンマネージ オブジェクトへの独自のポインターを持っていることです。派生したアンマネージド オブジェクトだけが必要で、すべてのプロパティで UnManagedB ポインターを使用する必要があります。これを行う方法はありますか?

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

visual-c++ - ネイティブ C++ dll からマネージ C++/CLI dll へのベクトルを返す

変更できないネイティブ C++ dll の周りに CLI/C++ ラッパーを作成しています。ネイティブ DLL の関数の 1 つは、アンマネージ オブジェクトのベクトルを返します。このベクトルを CLI ラッパーでラップする最良の方法は何でしょうか? CLI ラッパーは、C# アプリケーションで使用されます。

ネイティブ DLL には、ラップしようとしている関数 getInstruments() があります

そのため、instrument クラスをマネージド クラスでラップし、InstrumentList クラスをマネージド クラスでラップする必要があります。Instrument クラスをラップしましたが、getInstruments() によって返されたベクトルを、InstrumentList の CLI ラッパーが返すことができる同等のものに変換する必要があります。

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

.net - C++/CLI std::shared_ptr を返す関数のラップ

私は現在、マネージ クラスでネイティブ ポインターを保持する標準プロセスに従って、.NET 相互運用性のために C++/CLI で C++ クラスをラップしています。ある例では、次のような機能を持つネイティブ クラスがあります。

のラッパー クラスの作成を既に開始していますBaseChannel。ただし、生のポインターをマネージド クラスのコンストラクターに渡すと、マネージド クラスが指すオブジェクトの有効期間は保証されません。つまり、shared_ptr がスコープ外になる可能性があり、オブジェクトが削除され、マネージ クラスがダングリング ポインターを保持したままになります。

この状況の一般的な解決策は何ですか?

アップデート

@Ben: したがって、上記の質問でメソッドを保持するクラスを次のようにラップします (それが呼び出されたネイティブ クラスにNodeあり、NodeRef と呼ばれるマネージド クラスにラップされているとしましょう:

shared_ptr は参照によってマネージド クラスに渡されるため、参照カウントが増加していないため、ということですか?

この shared_ptr がスコープ内にある限り、参照カウントが少なくとも 1 であるため、それが指すオブジェクトは引き続き存在します。

? (ref C++ - std::shared_ptr または boost::shared_ptr への参照を渡す)

0 投票する
4 に答える
14417 参照

.net - 新しい SQLite 混合アセンブリ

以前は、.NET SQLite ライブラリは から入手できましhttp://sqlite.phxsoftware.comたが、最近メインの SQLite チームに引き継がれ、System.Data.SQLite ダウンロード ページに移動しました。新しいパッケージには混合アセンブリが含まれていないようです (sqlite3.dll と .NET ラッパーを含む単一のアセンブリ)。

新しいパッケージには .NET DLL が付属しておりSQLite.Interop.dll、ドキュメントに基づくとデスクトップでは必要ありませんが、私のアプリケーションは .NET でロードできませんUnable to load DLL 'SQLite.Interop.DLL': The specified module could not be found.。apppool を 32 ビットに設定して、IIS/IIS Express でアプリケーションを実行してみました。

SQLite.Interop.dllファイルをフォルダー、システム フォルダー、および ASP.NET temp フォルダーにコピーしようとしましbinたが、それでも同じエラーが発生します。

新しいリリース用の混合アセンブリはどこでも入手できますか? Unable to load DLL 'SQLite.Interop.DLLそうでない場合、エラーを修正する方法はありますか?

0 投票する
3 に答える
1456 参照

visual-c++ - .Net ref (%) をネイティブ (&) に変換

int %tmpC++/CLIをネイティブ C++に変換するにはどうすればよいint &tmpですか?

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

.net - C++/CLI: 1 つの CLR クラス、複数の C++ クラスから継承

C++/CLI では、次のようなクラス階層が必要です。

FooA が (CLR 以外の) 基本クラスを共有しながら、別の CLR クラスから継承することは可能ですか? そうでない場合、FooA と FooB が共通のコードを共有するための最良の方法は何でしょうか?

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

.net - クラス ライブラリでの混合モード アセンブリの問題

私は独特のひねりで共通の問題を抱えています。私は VS2010 を実行しており、以前のフレームワークでコンパイルされている必要があるサード パーティの DLL のクラスターを使用しています。もちろん、次のエラーが表示されます。

混合モード アセンブリは、ランタイムのバージョン 'v2.0.50727' に対してビルドされており、追加の構成情報がないと 4.0 ランタイムに読み込むことができません。

app.config ファイルに以下を追加することで、Windows フォーム アプリケーションのこれらの DLL で以前に問題を解決しました。

私の問題は、クラス ライブラリ プロジェクトでこれらの DLL を使用して、Windows サービスから呼び出すことができるようにしたいということです。残念ながら、クラス ライブラリは app.config ファイルを使用しません。Google を何時間も調べましたが、有用な解決策を見つけることができませんでした。

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

asp.net-mvc-3 - ASP.Net MVC 3 領域と混合モード認証

ASP.Net MVC エリアで、アプリケーションの残りの部分とは異なる認証を使用することは可能ですか? エクストラネットなので、メインのアプリはフォーム認証でなければなりません。社内の従業員のみがアクセスできる管理セクションが必要です。私は多くの調査を行い、混合モードの実行方法の例を見つけましたが、ASP.Net MVC エリアでの実行方法を示すものは何も見つかりませんでした。

ご協力いただきありがとうございます。

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

.net - VS2010 で混合マネージド/ネイティブ C++ dll を作成するには?

マネージ C++ インターフェイスを持つ dll を作成したいのですが、その下で動作する実際のコードはネイティブ C++ です。

現在、マネージ コードとのインターフェイスに COM (STA) を使用していますが、現在は、STA スレッドを許可しない ThreadPool を使用してモジュールを呼び出したいと考えています。MTA COM 用にモジュールを再コーディングすることは避けたいと考えています。

私は以前にこの質問をしたことがありますが、回答は基本的な質問、つまりプロジェクトのセットアップ方法に対応していないようです。私は VS2010 を使用しており、手順をレイアウトしたいと思います。マネージ ライブラリ (C++ クラス ライブラリ) から始めて、アンマネージ クラスと MFC DLL (いくつかの MFC クラスを利用していますが、最終的には解決したいと考えています) を追加して、マネージ クラスを追加しようとしました。私はそれをコンパイルすることができないようです。

誰かが私の無知をユーモアにして、プロジェクトの種類から始まる手順を明示的にレイアウトしてもらえますか?