其他分享
首页 > 其他分享> > C将int转换为* LONG

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