Я переношу большой объем кода из Visual Studio в проект с включенным unicode mingw, и я столкнулся с этой проблемой. Кажется, что параметры, которые я передаю из производного класса в базовый класс, не совпадают , По крайней мере, это мое предположение. Я подозревал, что проблема с типом LPCSTR
Глядя в этот тип в MinGW я получаю происходит некорректно ЬурейеЕВопросы LPCSTR и wchar_t. Ошибка компоновщика из-за несоответствия параметров
typedef CONST CHAR *LPCSTR,*PCSTR;
Теперь это базовый класс
#ifdef UNICODE
CBasePin(
__in_opt LPCSTR pObjectName,
__in CBaseFilter *pFilter,
__in CCritSec *pLock,
__inout HRESULT *phr,
__in_opt LPCWSTR pName,
PIN_DIRECTION dir);
#endif
Это класс, который наследует от базовый класс и передает параметры базовому классу.
CAsyncOutputPin::CAsyncOutputPin(
HRESULT * phr,
CAsyncReader *pReader,
CAsyncIo *pIo,
CCritSec * pLock)
: CBasePin(
TEXT("Text Pin"),
pReader,
pLock,
phr,
TEXT("Output"),
PINDIR_OUTPUT
),
m_pReader(pReader),
m_pIo(pIo)
,m_bQueriedForAsyncReader(false) ////
{
}
Это ошибка линкера я получаю в списке инициализации конструктора
undefined reference to `CBasePin::CBasePin(wchar_t const*, CBaseFilter*, CCritSec*, long*, wchar_t const*, _PinDirection)'|
какие-либо предложения о том, почему я получаю эту ошибку компоновщика. Я немного озадачен, почему это ошибка компоновщика. Я предполагал, что это было несоответствие типа или что-то такое, что оно будет отображаться как ошибка компилятора. Любые предложения о том, как я могу решить эту проблему для Mingw 64bit gcc?
Спасибо, что сделал трюк –