初めて書き込みます。
開発環境:VC++ 6.0、Windows XP Home SP1
現象:XP Homeで作成したプログラムをXP Homeのパソコンにセットアップすると動作する
が、XP Proのパソコンでは以下のエラーが発生します。
(こちらの事情で、debagバージョンでコンパイルしています)
Runtime Error!
abnormal Program Termination.
ここで「OK」をクリックすると
Debug Assertion Failed!
File daocore.cpp
Line:45
何かバージョンの違いがあるのか、回避策はあるのかなど、
ご意見をいただければうれしいです。
実行環境の設定に間違い無いですか
特にDB
DAO使っているみたいですけど
コネクト文字列とか
ODBC設定とか
woodさん、お返事ありがとうございます。
先に書き忘れましたが、このプログラムは私が作成した物ではなく、しかも改造途中だっ
たものを引き継いでしまったことが分かり、なんとかデバッグして動作を確認し、実機
(XP pro)にセットアップしたところエラーが発生したという経緯です。
ご指摘の通り、DAO関連が怪しそうです。
以下抜粋しましたが、いかがでしょう?
-------------------------------------------
//プログラム全体共通オブジェクト定義
CDaoWorkspace* pWorkspace;// データベースのワークスペースオブジェクト
// CFuriiraiApp クラスの初期化
BOOL CFuriiraiApp::InitInstance()
{
CDaoComm m_Comm; // データベースアクセスオブジェクト
pWorkspace = m_Comm.DatabaseConnect( NULL, 0, 0 ); // データベースへの接続
}
CDaoWorkspace* CDaoComm::DatabaseConnect( LPCSTR WorkspaceName, int Error_Msg,
int *Error_No )
{
CString Name;
CDaoWorkspace* pWorkspace = new CDaoWorkspace();
Name.Format(%s, WorkspaceName );
if( Name == " ){
pWorkspace->Open(NULL); // デフォルトワークスペースのオープン
}else{
pWorkspace->Open( WorkspaceName );
}
return( pWorkspace );
}
で、newした CDaoWorkspace はいつ/どこでdeleteしてるんでしょか?
>しかも改造途中だった
元のものは同一環境で本当に動作しているのですか
επιστημη さん
ここには載せていませんが、最後の終了処理の過程でdeleteしていて、
メモリリークを起こしていないことを確認してあります。
wood さん
元のものはWindows98で動作していますが、同一内容のセットアッププログラムは作成
できない状態です。そのため、WindowsXPで動作確認は取れていません。
その後検討したところ、使用者の改善要望を含め、改めて改良(再作成?)を行なうこと
になりました。せっかくお答えいただいたのに申し訳ありませんが、デバッグ途中でお蔵
入りになりそうです。
解決には至りませんでしたが、どうもありがとうございました。