我正在使用32位的embarcadero C++ XE8。当我包含以下文件时:
#include<ATLBASE.h>
#include<UTILCLS.h>
#include<opcda.h>
#include<DataCallBackSink.cpp>
我得到以下错误:
[bcc32 Fatal Error] atlbase.h(5): F1003 Error directive: You must copy ATL files from an earlier version of BDS [$(BDS)\include\atl\*.*] t
我正在使用MFC CString:获得最奇怪的内存行为
第138行: PCD_Dir = m_pRunPCD->m_PCD_Dir;
声明:
CString PCD_Dir; (file scope, defined as a global outside of CServer )
class CRunPCD {
public:
CString m_PCD_Dir;
}
调用堆栈:
Support.dll!CServer::Init(CCfcController * pv=0x007ebe78) Line 138 C++
Support.dll!CCfcController::On
我的IDL中有以下内容,MIDL似乎很喜欢。我正在尝试创建一个返回字节数组(不是矩阵)数组的方法。我在C++方面遇到了一个问题,编译器既不喜欢ATL::CComSafeArray<LPSAFEARRAY>也不喜欢ATL::CComSafeArray<ATL::CComSafeArray<byte> >。我得到了一个error C2039: 'type' : is not a member of 'ATL::_ATL_AutomationType<T>'。
[id(1001)] HRESULT Find([out]
我已经使用Visual Studio2005向导创建了一个ATL COM Server C++项目。我使用ATL简单对象向导添加了一个新的COM类。现在,当我试图从我的服务器创建这个COM类实例时(在ATL服务器中调用CoCreateInstance ),我从CoCreateInstance得到了CO_E_SERVER_EXEC_FAILURE错误。当我尝试从另一个项目(另一个Win32可执行文件)创建此对象时,该对象被正确创建。是什么导致了这个错误?
当我尝试使用注册32位版本的C++ / ATL项目时
regsvr32 project.dll
我得到了这个错误:
LoadLibrary("project.dll") failed - The specified module could not be found
project.dll是我在Visual Studio10上使用ATL语言构建的动态链接库。
64位版本注册正常。
我遗漏了什么?
我收到警告了
warning C4640: '_entries': construction of local static object is not thread-safe
例如,从ATL宏END_CONNECTION_POINT_MAP
BEGIN_CONNECTION_POINT_MAP(CMBusInclinometerTemChannel)
CONNECTION_POINT_ENTRY(__uuidof(IChannelEvents))
END_CONNECTION_POINT_MAP()
在C++ ATL/COM项目中。
我认为自安装Visual 2015更新