C将int转换为* LONG
作者:互联网
我有以下代码:
STDMETHODIMP CWrapper::openPort(LONG* m_OpenPortResult)
{
string str("test");
const char * c = str.c_str();
m_OpenPortResult=Open(c); //this does not work because "Open" returns an int
return S_OK;
}
int Open(const char* uKey)
{
}
我无法将“int”转换为“LONG *”.
编译器告诉我“’int’不能转换为’LONG *’.
我也尝试使用INT *而不是LONG *,但这也给了我一个错误.
有人可以告诉我如何将int转换为LONG *或INT *?
解决方法:
你不需要转换任何东西. LONG *是指向LONG的指针,您可以将int指定给LONG.只需取消引用指针,然后分配它:
*m_OpenPortResult = Open(c); // <-- note the *
或者更安全:
if (!m_OpenPortResult) return E_POINTER;
*m_OpenPortResult) = Open(c);
甚至:
LONG ret = Open(c);
if (m_OpenPortResult) *m_OpenPortResult = ret;
标签:c,long-integer,int,type-conversion,visual-studio-2012 来源: https://codeday.me/bug/20190831/1772772.html