今天我必须在本地C++项目中定义WIN32_MEAN_AND_LEAN
预处理器宏,因为我决定在其中使用boost::asio
,如果没有这个宏,就会出现构建错误。从非COM静态库中移除对OleInitialize的调用是否安全?
事情是,我现在得到的错误是OleInitialize: identifier not found
。根据MSDN,该函数用于初始化COM库。我的项目现在不是COM库,但我的合作伙伴说它曾经是。
在这种情况下,移除呼叫是否安全?该项目使用了Win32串口函数和boost :: asio(逐渐地,我将离开boost :: asio)。我担心OleInitialize对于某些Win32调用可能是必需的。
这是所有与它做:
HRESULT hOle = OleInitialize(0);
if(!SUCCEEDED(hOle))
throw "Could not initialize OLE";
最简单的解决方案是将原型从MSDN复制/粘贴到您自己的头文件中并继续调用函数。 – 2012-02-08 20:27:22