2016-04-15 78 views
0

Visual StudioのC++またはCode:blocks MinGWからcygwinコンパイル済みDLLを使用する必要があります。cygwin C++ dllをロードし、クラス関数を呼び出す

私はcygwin1.dllと他のDLLをロードしました。これはcyggcc_s-seh-1.dll,cygstdc++-6.dllなどです。私のdllは正常にロードされています。関数ポインタはGetProcAddress関数で得ることができますが、私の問題はそれです。

私のdllは多くのクラスを持つC++ dllです。 私は必要なヘッダが含まれていた。しかし(どのように私は誰でどの機能を推測することができます) 私は別の呼び出し規約は

000000051a5ae590 T _ZN6eq_res8is_breakEv 
000000051a5ae810 T _ZN6eq_res8is_emptyEP5EqAdr 
000000051a5ae700 T _ZN6eq_res8is_localEP5EqAdr 
000000051a5b00c0 T _ZN6eq_res8monitorsEv 
000000051a5af4e0 T _ZN6eq_res8req_cardEi 
000000051a5af560 T _ZN6eq_res8ret_cardEv 
000000051a5ae540 T _ZN6eq_res8set_exitEv 
000000051a5ae9d0 T _ZN6eq_res9check_refEP6eq_svr 
... 

どのように私は、Visual CにロードされたDLLまたはプロジェクトのための関数呼び出し規約を変更することができてい++? または、オブジェクトのコンストラクタ、オブジェクトのデストラクタを宣言し、dllの他のクラス関数を使用するにはどうしたらいいですか?

ありがとうございました。

答えて

0

Visual StusioとCygwinを混在させることは、問題を探すことを意味します。 いくつかのヒントがここに

https://cygwin.com/faq.html#faq.programming.msvs-mingw

を与えられたが、2つの世界が異なる規則を使用し、64ビット、異なるタイプのサイズにすることを覚えています。

https://cygwin.com/faq.html#faq.programming.64bitporting

+0

おかげで私のcygwinのdllが、多分それはトラブル64ビットですが、残念ながら、私は開始して完了する必要がありき、私はmacrosesによって種類を克服することができると思うと、もう一つ、私が仕事をすることができませんでした端末で動作している 'printf'や' cout'関数です。 – user3548808

関連する問題