私はmingw-w64を使用しています。私はstrsafe.h
を含めて、次の警告を取得しています:私が使用g ++の "インライン関数が使用されたが決して定義されていない"警告を取り除く方法
warning: inline function 'HRESULT StringCchPrintfA(STRSAFE_LPSTR, size_t, STRS
AFE_LPCSTR, ...)' used but never defined [enabled by default]
のみのフラグフラグは-Wall -DDEBUG -g
をしています。私はあなたが同じヘッダのインライン関数を定義しなければならないことを知っています。私はstrsafe.h
を見て、明らかにヘッダにStringCchPrintfA
があることがわかります。なぜこのエラーが出るのか分かりません。また、ここにはa link to strsafe.h if you want to look at the header yourselfがあります。
編集:
私はオンライン次のスニペットを見つけました(誰がより多くの情報を提供することができるなら、私に知らせてください、コメントで言って何をしようとしている?):
// Work around lack of strsafe library in mingw-w64, do let their
// strsafe.h provide inlines of StringCchVPrintfA etc, avoid linking
// errors in a debug build.
#ifdef __CRT__NO_INLINE
#undef __CRT__NO_INLINE
#define DID_UNDEFINE__CRT__NO_INLINE
#endif
extern "C" {
#endif
#include <strsafe.h>
#ifdef __MINGW32__
}
#ifdef DID_UNDEFINE__CRT__NO_INLINE
#define __CRT__NO_INLINE
#endif
#endif
__CRT__NO_INLINEはどこかで定義されているので、関数は実際には定義されていませんか? – tpg2114
@ tpg2114 ___CRT__NO_INLINEが定義されている場合、 'StringCchPrintfA'はインライン関数ではありません。 –
あなたが投稿したヘッダーのリンクには、#define STRSAFEAPI static __inline HRESULT WINAPIがありますので、関数は__CRT__NO_INLINEの状態に関係なく 'static __inline'です。 – tpg2114