【发布时间】:2015-04-06 21:37:39
【问题描述】:
我将大量代码从 Visual Studio 移植到启用 mingw unicode 的项目中,我遇到了这个问题。我从派生类传递到基类的参数似乎不匹配。至少这是我的假设。我怀疑问题出在LPCSTR 类型上
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 解决此问题的任何建议?
【问题讨论】:
标签: c++ visual-studio gcc