ここで他の解決策を確認しましたが、適用されないようです。次のように宣言された関数プロトタイプがあります。
typedef FTC_STATUS(CALLBACK *SPI_SetGPIOsFuncPtr)(FTC_HANDLE ftHandle);
これらは私の構造では次のように使用されます。
struct FTDIFuncs
{
SPI_SetGPIOsFuncPtr SPI_SetGPIOs;
plus other functions
}
問題の関数は次のように定義されます。
FTC_STATUS WINAPI SPI_SetGPIOs(FTC_HANDLE ftHandle);
関数は次のように構造体に割り当てられます。
ftdiFuncs.SPI_SetGPIOs = reinterpret_cast<SPI_SetGPIOsFuncPtr>(SPI_GetGPIOs);
関数は次のように呼び出されます。
status = ftdiFuncs->SPI_SetGPIOs(ftcHandle)
ただし、リターン時に、上記の実行時エラーが発生します。明らかなチェック:
1. 関数 ptr typedef と関数自体が同じ引数を持っている
2. と の両方がCALLBACK
でWINAPI
あると定義されている__stdcall
。いずれにせよ、typedef と関数プロトタイプの両方を両方に変更したWINAPI
ところ、同じエラーが発生しました。
3. 期待どおりに機能する他の関数を呼び出しますftdiFuncs
。上記のfunc と function ptrs
のすべてが、メイン プロジェクトがリンクするライブラリにコンパイルされることは、おそらく指摘する価値があります。ftdi