問題タブ [dllexport]

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

c# - C# で C DLL を呼び出す際の問題

現在、C# から C で作成されたメソッドを呼び出そうとしています。

C コードは次のようになります。

C# コードは次のようになります。

コードは正しい値を返しますが、次のエラーが発生します。

addSum' がスタックのバランスを崩しました。これは、マネージド PInvoke 署名がアンマネージド ターゲット シグネチャと一致しないことが原因である可能性があります。PInvoke シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します。

この問題に関する提案はありますか?

ありがとう

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

c# - C++ から COM オブジェクトを作成しますか?

C++ コードから dll を作成し、C# で使用したいと考えています。C++ から COM オブジェクトを作成する解決策はありますか?
使いたくないSystem.Runtime.InteropServices

どうもありがとう

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

c# - C#はFortrandllでエントリポイントを見つけることができません


私は動作するFORTRANプログラムを与えられ、そのためにC#GUIを作成する必要があります(理由は聞かないでください)。このプログラムにはすでにFORTRANGUIが含まれているので、すべての計算サブルーチンを抽出してFORTRANdllに入れました。このdllは、4つのファイルで構成されています。1つは静的ライブラリ、1つはFORTRAN77ファイル(.for)、2つはFORTRAN90ファイル(.f90)です。C#コード内から呼び出されるはずのすべてのサブルーチンをEXPORT.f90に配置しました。
FORTRANコード:

今、私はそれらをC#で呼び出そうとしています

EntryPointNotFoundException「「MYDLL.dll」でエントリポイント「SETLK」が見つかりません」が表示されます。それを機能させるために私は何をしなければなりませんか?
ありがとう

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

c# - C++64ビットdllを介して64ビット.netアプリでPInvoke

ac#アプリ内のc++dllで関数を呼び出す際に問題が発生しました。私は次のようにc#内で関数を呼び出しています:

以下に示すように、c++dllにエクスポートされています。

ただし、これを呼び出そうとすると、「外部コンポーネントが例外をスローしました」というメッセージが表示されます。例外。これはまったく説明的ではなく、非常に役に立たないものです。

エクスポートビューアでdllをプルアップすると、完全に定量化された宣言(IE public:void __cdecl CryptoPP :: X509PublicKey :: `vbase destructor'(void)__ptr64)を含む他のすべてのエクスポートされた関数が表示されます。呼び出し、関数名RSAEncryptStringを表示するだけです。

これは、c#側で無効な宣言を使用して関数を誤って呼び出す以外に、私が見ることができる唯一の問題です。System.Runtime.InteropServices.Marshalを間違って使用していますか?

<3を助けてくださいそして前もって感謝します。

0 投票する
5 に答える
26047 参照

c# - C# アプリケーションで使用するために C++ クラスを DllExport する方法

クラス "myCppClass" を含む C++ Dll プロジェクトを作成し、http://msdn.microsoft.com/en-us/library/a90k134d(v=vs . 80).aspx

「public CObject」は afx.h を必要とし、MFC DLL であることを意味するため、省略しました。これが良いことかどうかはわかりませんが、DLL プロジェクトのデフォルト設定とは異なっていました。

上記のリンクされたドキュメントから、すべての「パブリック関数とメンバー変数」がインポート可能であると信じるようになりました。C#でこれを達成するにはどうすればよいですか? クラスを単純にインスタンス化できますか?

編集:投稿のタイトルが誤解を招く可能性があることに気付きました. C# からの DllImport と、C++ のドキュメントに適切に従っていることを確認することに重点を置く必要があります。

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

c# - VS C ++のようにC#DLLから関数をエクスポートすることは可能ですか?

VS C / C ++では、を使用できますextern "C" __declspec(dllexport) -function declaration-

C#dllでこれを実現するにはどうすればよいですか?上記のコードと同等のC#コードはありますか?

編集:詳細

Notepad ++のアドインを作成しようとしていて、C#を使用したいのですが、これまでに見た一般的な方法は、上記の呼び出しでレガシーC ++コードを使用して、Notepad++がインポートすると想定するいくつかの関数をエクスポートすることです。電話。C#を使用したサンプルアプリがありますが、これにはローダーDLLが必要です。これは、以下のコメント/回答からC#の唯一の方法であると思います。

0 投票する
5 に答える
8937 参照

c++ - VB6でC++DLLを使用する

MSVC++2010で上司用のDLLを作成しました。「シンボルのエクスポート」オプションを指定して「新しいWin32DLL」を選択したので、すべてが完全に標準です。新しいプロジェクトファイル、クラス、そのコンストラクター、偽の値を持つグローバル関数と変数、およびAPIENTRY関数を持つファイルdllmain.cppには、いくつかの事前定義されたエクスポートがあります。まだ何も変更していません。

今、私の上司は彼のVB6プロジェクトでエクスポートされたものを使用したいと思っています。彼はVB6プロジェクトを開始し、メニュー「プロジェクト」-「リンク」(ドイツ語から英語に翻訳されているため、多少異なる場合がありますが、私が何を意味するかはご存知でしょう)を実行し、DLLファイルを選択しました。通常はそうします。

ただし、VB6はそれを含めることができず、代わりに「DLLファイルを含めることができませんでした」というエラーメッセージが表示されます(実際の理由は示されていません)。Visual C ++ 6の標準の新しいDLLプロジェクトでも同じことが起こりました。上司は、シンボルが実際にエクスポートされていないか、VB6に特別な宣言が必要なためだと考えています。誰かが問題が何であるか知っていますか?

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

static - VisualC++でのdllimport/dllexportと静的ライブラリのコンパイル

私は必死にあなたの助けが必要です。

Visual C ++ 2008コンパイラを使用してWindowsでpopplerライブラリ(特にqt4用)を静的にコンパイルしようとしています。このタスクを実行するには、popplerの依存関係として他のライブラリも静的にコンパイルする必要がありました。静的バージョンのpopplerを最終的に生成すると、アプリのビルド時にリンクエラーが発生しました。

私はすでに新しいインクルードパスを追加し、poppler-qt4.libをリンクしましたが、とにかくエラーが発生します。解決策を探している私はこの議論をstackoverflowで見つけました

Visual C ++ 2008で静的ライブラリをリンクするにはどうすればよいですか?

この情報を見て、ライブラリのインクルードファイル(zlib、libpng、cairoなどのpopplerの依存関係)を調べたところ、さまざまなケースで、静的バージョンを指定するためのプリプロセッサディレクティブがないことがわかりました。 lib。静的ディレクティブの例(openjpeg.h):

静的ディレクティブのない例(jpeg libのjconfig.h):

私の質問は、プロジェクトのプロパティを動的から静的に変更するだけでは不十分なので、このヘッダーも変更する必要がありますか?これが当てはまる場合、静的コンパイルと動的コンパイルを区別するためのこの新しいディレクティブをどこで定義できますか? ?

前もって感謝します。

0 投票する
5 に答える
25702 参照

excel - VBAコードをDLLライブラリに保存するには?

セキュリティ上の理由から、マクロを Excel ワークブックの VBA から、後でファイルから呼び出す DLL ライブラリ ファイルに保存したいと考えています。

このようにして、マクロの任意のバージョンを会社の PC に展開することができますが、その背後にある実際のコードは誰も見ることができません。

これはどのように可能ですか?C++ への変換と DLL の作成について読みました。これに対する段階的な解決策はありますか?

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

c++ - DLLのクラスと関数をエクスポートし、Win32アプリケーションにインポートします

その中にいくつかのメソッドと変数を定義するクラスを持つdllがあります。私はそれをマークしました

同じソリューションのwin32アプリケーションプロジェクト内に.hヘッダーをインポートしました。関数を使用することはできますが、プロジェクトをコンパイルしようとすると、外部シンボルが解決されないというエラーがたくさん発生します。なんで?