2012-02-28 41 views
1

締め切りが近い、USBデバイスプロジェクトのDLLのVC++ソースコードを取得しました。今は別のVBプログラムからこのusb dllを呼び出さなければなりません。しかし、ソースコードはVBで呼び出すことのできないテンプレート "MFC Extension DLL"に基づいています。一方、「静的にリンクされたMFCを持つ通常のDLL」は、Visual Basicで記述されたプログラムから呼び出すことができます。「MFC拡張DLL」を「MFCを静的にリンクした通常のDLL」に急いで変換する

VBから直接このdllを呼び出せるように、ソースコードの変更を最小限に抑えて方法がありますか?

スタティックライブラリでMFCを使用するために、プロジェクトの構成プロパティ/ MFCの使用を変更しようとしました。しかし、ビルドエラーがあります。

今、私は新しいテンプレート "MFCでの通常のDLL"に基づいてソースコードを変更していますが、多くの問題があります。たとえば、新しいdllコードでAFX_EXTENSION_MODULEを使用できるかどうかはわかりません。

+0

「しかし、ビルドエラーがあり、」1が想像できる問題のほとんど役に立たない説明です。どのように誰があなたの説明を手伝ってくれますか? – Roel

答えて

0

DLLのMFCクラスが依存するサービスを提供するCWinApp派生オブジェクトを実装していない可能性があります。たぶんあなたは1つだけ鳴らすことができ、それはうまくいくでしょう。

は、詳細についてはこちらをご覧ください:

+1

あなたが言っている理由ではありません。 MFC拡張DLLは、同じバージョンのMFCライブラリを共有していないクライアントアプリケーションで使用できません。 MFC拡張DLLは、主にMFCクライアントアプリケーション用です。 – will1978

+0

はい、そうです。そう? MFCでは、CWinAppから派生したオブジェクトがほんとうに存在する必要があります。 1つだけ入れると、あなたは行くのが良いはずです。 – Ben

+0

いいえ、それは簡単ではありません。 MFCでの標準DLLのテンプレートでは、既定のコードには既にCWinAppがあります。しかし、元のコードを新しいテンプレートにコピーするだけでは簡単ではありません。 – will1978

関連する問題