※ ChatGPTを利用し、要約された質問です(原文:ifjpeg.spiを呼び出すプログラムでエラー)
ifjpeg.spiを呼び出すプログラムでエラー
このQ&Aのポイント
Code Gear C++ Builder 2009で作成したプログラムで、ifjpeg.spiというDLLファイルの読み出しプログラムを作成しています。しかし、コマンドボタンを押すと未解決の外部参照エラーが発生します。
プラグインファイルがロードできないか、Susieプラグインではない可能性があります。
解決方法が分からない場合は、DLLファイルの読み込みに関するコードを再確認してください。
現在、Code Gear C++ Builder 2009 でプログラミングをしていて、ifjpeg.spiというDLLファイルの読み出しプログラムを作成しているのですが、
コマンドボタンを押して、”ProcGetPluginInfo”というデータをとりだすというプログラムなのですが、
[ILINK32 エラー] Error: 未解決の外部参照 '__fastcall TMainForm::CallButtonClick(System::TObject *)' が C:\・・(中略)・・・\VC_TEST\CPP_BUILDER_2009\TEST_PICTURE_VIEW\RELEASE\UNIT1.OBJ から参照されました
このようなエラーが出てきます。
解決方法ご存じの方いらっしゃいませんでしょうか?
void __fastcall TMainForm::InfoButtonClick(TObject *Sender)
{
char buf[80];
HINSTANCE hSPI = LoadLibrary(PluginNameEdit->Text.c_str());
//HINSTANCE hSPI = LoadLibrary("ifjpeg.spi");
//HINSTANCE hSPI;
//ロードエラー
if( hSPI == NULL ){
ShowMessage("プラグインファイルがロードできません");
return;
}
ProcGetPluginInfo GetPluginInfo =
(ProcGetPluginInfo)GetProcAddress(hSPI,"GetPluginInfo");
//アドレス取得エラー
if( GetPluginInfo == NULL ){
ShowMessage("Susieプラグインではありません");
FreeLibrary(hSPI);
return;
}
//情報0
GetPluginInfo(0,buf,80);
Memo1->Lines->Add(buf);
//Memo->Lines->Add(buf);
//情報1
GetPluginInfo(1,buf,80);
Memo1->Lines->Add(buf);
//情報2
for( int i=0; GetPluginInfo(i*2+2, buf, 80) > 0; i++){
Memo1->Lines->Add(buf);
GetPluginInfo(i*2+3,buf,80);
Memo1->Lines->Add(buf);
}
FreeLibrary(hSPI);
}
//---------------------
お礼
回答頂きありがとうございました! Unit1.hppを確認したところ ・ ・ ・ void __fastcall CallButtonClick(TObject *Sender); void __fastcall InfoButtonClick(TObject *Sender); ・ ・ ・ このうちの //void __fastcall CallButtonClick(TObject *Sender); これをコメントアウトしたら、ビルド通りました! 助かりました!