C++相談室 part47
■ このスレッドは過去ログ倉庫に格納されています
0460デフォルトの名無しさん
2006/02/28(火) 01:37:56Win32コンソールアプリケーションからWin32DLLを動的に明示リンクした際に、
なぜかReleaseでのみ問題が発生します。
DLL側は
__declspec(dllexport) int LL_OpenArchive(LPCTSTR szFilePath)
{
return s_osaArcEx.OpenArchive(szFilePath);
}
の様に宣言しており、もちろん定義ファイルでエクスポートを定義しております。
アプリケーション側は
typedef int (__stdcall *LL_OpenArchive)(LPCTSTR);
の様にプロトタイプ宣言を行いLoadLibary, GetProcAdressを用い関数のアドレスを取得しています(そこまでは問題有りません)
取得した関数に引数としてchar s[512]の様な固定長CHAR配列にgetsで文字列を取得したものを当てています。
が、Releaseビルドでその処理を行うと、sのアドレスが4バイト引かれるのです。Debugではおこりません。
ためしにDLL側の関数の中身をreturn 0;のみにしたりもしましたが状況は変わりませんでした。
このようなことはあり得るのでしょうか?
またどう対処すればよろしいのでしょうか? ご教授お願い致します。
■ このスレッドは過去ログ倉庫に格納されています