まず第一に、間違いをお詫びします。英語は私の母国語ではありません。
ここに私の問題があります: CSocket から派生したクラスをエクスポートする DLL を作成しました。DLL を暗黙的にロードするクライアントが次のようにオブジェクトをインスタンス化する必要があることを除いて、すべて正常に動作します。
// Inside client constructor (client class scope object pointer)
CMyClass *m_lpMyObj = new MyClass;
ただし、オブジェクトが次のようにインスタンス化されている場合:
// Inside the client class header file (client class scope object)
CMyClass m_myObj;
クライアントを実行すると、次のエラーが表示されます。
Unhandled exception at 0x775015de in MyApp.exe: 0xC00000FD: Stack overflow.
クライアントメソッド内で私が書いた場合も同じ問題:
// Inside a client method (local object)
CMyClass myobj;
唯一の違いは、メソッドを呼び出すと (もちろん) エラーが発生することです。
クラスの詳細は次のとおりです。
// _AFXEXT defined for DLL project
#ifdef __cplusplus
extern "C" {
#endif
class CMyClass : public CSocket
{
DECLARE_DYNCREATE(CModbusConnector)
public:
AFX_EXT_CLASS CMyClass(); // Only some methods are exported
AFX_EXT_CLASS virtual ~CMyClass();
....
};
#ifdef __cplusplus
}
#endif
DLL は CWinApp 派生オブジェクト (通常の DLL) です。DLL を拡張 DLL としてコンパイルしましたが、結果は同じでした。
前もって感謝します。
よろしく、
ニール