佚名通过本文主要向大家介绍了api空指针异常 null,指针指向null,指针等于null,null指针,指针为null等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 调用COM组件DLL,this指针为NULL。怎么回事
描述:
解决方案1:
描述:
#import "..\\..\\bin\\VPExporter.dll" no_namespace
#include "./Release/vpexporter.tlh"
类构造中添加
CoInitialize(NULL);
CLSIDFromProgID(OLESTR("VPExporter.IFileExporter"),&st_ClsId);
pSt_COMFileExporter.CoCreateInstance(st_ClsId);
然后在调用函数使用
pSt_COMFileExporter->OpenFile(strNewFile.GetBuffer());
直接崩溃,我调试进入openfile函数后看到局部变量窗口this指针为NULL,
inline VARIANT_BOOL IFileExporter::OpenFile ( _bstr_t thePath ) {
VARIANT_BOOL _result = 0;
HRESULT _hr = raw_OpenFile(thePath, &_result); //这里崩溃了
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result;
}
请问咋回事 如何解决。。。我以前做测试dll的时候好像遇到过这个问题,不过忘记当时是咋个解决的了
解决方案1:
// {B1B8C6F8-3723-43e6-AEA8-4CADB6E91F21}
static const GUID st_ClsId =
{ 0xb1b8c6f8, 0x3723, 0x43e6, { 0xae, 0xa8, 0x4c, 0xad, 0xb6, 0xe9, 0x1f, 0x21 } };