問題タブ [managed]

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 投票する
5 に答える
67090 参照

c# - アンマネージド dll をマネージド C# dll に埋め込む

DLLImport を使用してアンマネージド C++ dll を使用するマネージド C# dll があります。すべてがうまくいっています。ただし、Microsoft が説明しているように、マネージド DLL 内にそのアンマネージド DLL を埋め込みたい:

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.dllimportattribute.aspx

そこで、アンマネージド dll ファイルをマネージド dll プロジェクトに追加し、プロパティを「埋め込みリソース」に設定し、DLLImport を次のように変更しました。

ここで、「Wrapper Engine」はマネージド DLL のアセンブリ名です。「Unmanaged Driver.dll」はアンマネージド DLL です。

実行すると、次のようになります。

アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))

私は MSDN とhttp://blogs.msdn.com/suzcook/からそれが可能であると見ました...

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

managed - マネージ C++ を使用してネイティブ C++ クラスをラップしようとすると、LNK2028 が発生します

マネージド c++ クラスを使用してネイティブ cpp クラスをラップしようとしています。

すべて問題ないように見えますが、何らかの理由でコンパイルできません。

次のリンカー エラーが発生します。

エラー 25 エラー LNK2028: 未解決のトークン (0A0002CE) エラー 27 エラー LNK2019: 未解決の外部シンボル

これを修正するにはどうすればよいですか?:\

さて、これは関数の1つの完全なエラーです:

エラー 20 エラー LNK2028: 未解決のトークン (0A0002CF) "public: bool __thiscall RCSclient::ResumeChannel(char *,int,__int64)" (?ResumeChannel@RCSclient@@$$FQAE_NPADH_J@Z) 関数で参照されている "public: bool __clrcall RCSClientWrapper ::RCSclientWrapper::ResumeChannel(class System::String ^,int,class System::DateTime ^)" (?ResumeChannel@RCSclientWrapper@RCSClientWrapper@@$$FQ$AAM_NP$AAVString@System@@HP$AAVDateTime@4@ @Z) RCSClientWrapper.obj RCSClientWrapper

結果なしでuser32.libを追加しようとしました..

オファー

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

c++ - 構造体の C++/CLI 配列をアンマネージ C++ にマーシャリングする方法

構造体配列をアンマネージ C++ dll に渡すための正しい構文を探しています。

私のdllインポートはこのように呼び出されます

私のクライアントコードでは

System::Runtime::InteropServices::Marshal には、このようなことを行うための便利なメソッドがたくさんあることは知っていますが、どれを使用すればよいかわかりません。

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

user-interface - C ++でのマネージド型とアンマネージド型の変換?

C++ で GUI を使用すると、テキスト フィールドは管理された文字列として格納されると思います。それらを標準の int、float、および string に変換する方法が必要です。何か助けはありますか?

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

.net - double* を配列に変換する方法(6)

6 つの double の配列を返す関数があります。

この戻り値をマネージド コードでキャストしたいと思います。

次のエラーが表示されます。

どうすればいいですか?

ありがとう。

0 投票する
8 に答える
2661 参照

c++ - ANSI C++ がマルチスレッドをサポートしていない場合、アンマネージ C++ アプリをマルチスレッド化するにはどうすればよいですか?

C++ はマルチスレッドのネイティブ サポートを提供していないと聞いたことがあります。マルチスレッド C++ アプリは、マルチスレッド用のマネージ コードに依存していると思います。たとえば、Visual C++ アプリは MFC や .NET などを使用して、マルチスレッド機能を提供していました。さらに、これらのマネージ コード機能の一部またはすべては、アンマネージ アプリケーションでは使用できないと想定しています。しかし、管理されていないマルチスレッド アプリケーションについて読んだことがあります。これはどのように可能ですか?私の仮定のどれが間違っていますか?

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

com - HOWTO: WindowsCE Compact Framework でアンマネージド C++ からマネージド C# インターフェイスを呼び出す

Windows CE 6 および Compact Framework のマネージ C# で記述された大量の新しいビジネスおよびコミュニケーション ロジックと組み合わせることで、新しい製品で使用したい UI を提供する広範なアンマネージ Windows CE 5 C++ コードがあります。

UI はビジネス ロジックを認識している可能性がありますが、ビジネス ロジックが UI を認識しないようにして、後でマネージ バージョンまたはフロントエンドとして選択したその他の UI に置き換えることができるようにする必要があります。

COM を Windows の世界でブリッジとして使用する方法を説明している記事を見つけましたが、WinCE の下で .NET CF に適用するのに苦労しています。過去に、タイプ ライブラリをインポートし、COM 呼び出し (CoInitialize()、CoCreateInstance()) を使用して、他の Windows プラットフォームのインターフェイスへのポインターを取得しました。同じ機能が WinCE で提供されていると仮定して、マネージ ライブラリの C# インターフェイスにアクセスするためのアンマネージ C++ ライブラリ。

これが私の問題です:タイプライブラリ。過去に '#import "SomeCPPLibrary.dll"' ステートメントを介して使用したため、マネージ C# ライブラリからは利用できません。これは .dll アセンブリに埋もれており、以前とは異なる方法で保存されているため、ライブラリ自体の #import を通じて直接利用することはできないと思います。typelib を #import できると思いますが、マネージ .dll から typelib を抽出する方法が見つかりません。インターフェイス定義ファイル (.idl) を一緒にハックして、プラットフォームの midl.exe を使用できるかもしれません。それから .tlb を生成するために、私の .idl とその結果の .tlb が実際に私の C# .dll にあるものと一致するという保証はありません。プラットフォーム midl.exe がこのように機能するかどうかはわかりませんが、機能すると仮定します。

  1. 私は間違った木を吠えていますか?対応する COM インターフェイスを介してアンマネージド C++ でマネージド C# インターフェイスを使用することは可能ですか?

  2. AssemblyInfo.cs ファイルで [assembly: ComVisible(true)] 属性を設定すると、マネージ アセンブリのすべてのインターフェイスが、AssemblyInfo.cs が定義する GUID を介してアンマネージ ワールドの COM を介して利用できるようになりますか?

  3. アンマネージ C++ ライブラリが #import できるように、マネージ .dll から typelib を取得するにはどうすればよいですか?

  4. マネージ C# ライブラリ プロジェクトをアンマネージ C++ ライブラリ プロジェクトの参照として追加しようとしましたが、うまくいきませんでした。このような状況では、そのような参照はまったく関係がありますか?

  5. アンマネージド C++ の世界からマネージド C# コードを呼び出すという基本的な問題を解決するためのより良い方法はありますか? ここで読んだのは、管理されていない/管理されているギャップを埋めるための管理された翻訳レイヤーを備えた混合モードのライブラリです。呼び出し応答速度は重要な要素であるため、これが良い戦略かどうかはわかりませんが、ある時点で UI をマネージド C# に書き直す予定であるため、長期的にはその方が良いかもしれません。より永続的なビジネス/通信ロジックをいじるのではなく、使い捨ての UI を使用しますか? この質問への回答に関係なく、好奇心以外の理由がなければ、COM の使用に関する問題を解決したいと思います。

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

native - ネイティブコードとマネージコードの違いは?

たとえば、GlowCodeプロファイラーのWebサイトを見ると、次のように表示されます。

「GlowCode6.2およびx64プロファイルのネイティブ、管理、および混合C ++、C#、.NETコード」

それらはどういう意味ですか?

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

c# - マネージド(C#)string[]配列をCOMDLLに渡す

セットアップ:
マネージドC#DLL内のメソッドを呼び出すCOMDLLがあります。この関数は、SAFEARRAYにマーシャリングされるC#string[]配列を返します。

問題:
safearray内の文字列にアクセスしようとすると、文字列の最初の文字しか取得されません。私は何が間違っているのですか?

コード:

助けてくれてありがとう、
-Sean!

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

c++ - Managed C++ でのマネージド オブジェクトの割り当て

gcnew を使用してオブジェクトを割り当てた後、nullptr をチェックする必要がありますか?