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