该接口方法使用BSTR传入字符串。
10 个解决方案
#1
接口是否正确获得,
你可以用
try
{}
catch(_com_error &e)
{
e.Description();
}
看下错误描述
你可以用
try
{}
catch(_com_error &e)
{
e.Description();
}
看下错误描述
#2
楼主还是自己调试吧!这样描述,很难找到问题所在!
出现这种错误,原因有很多:比如指针没有初始化、内存访问越界。。。。。
出现这种错误,原因有很多:比如指针没有初始化、内存访问越界。。。。。
#3
调试看看
#4
同意ls的,Debug下打开call stack窗口,看看运行到哪个函数抛出了该异常的
#5
接口是否正确使用,
参数是否正确,
ansi和unicode的问题
debug了,问题太抽象,情况有多种
参数是否正确,
ansi和unicode的问题
debug了,问题太抽象,情况有多种
#6
用call stack窗口,单步调试看看吧
#7
抛出的异常为:(以下为监视出口内容)
_com_error::Desprition 返回 {<错误的指针>(1)} _bstr_t
e {-2147352571} _com_error &
附:
1)异常处理代码
try
{
m_iDisplay->OpenTerrain(bsTerrainFielPath);
}
catch(_com_error &e)
{
e.Description();
}
2 )程序在在tli文件--OpenTerrain函数的_con_dispatch_method调用时中断。
inline long IInterface::OpenTerrain(_bstr_t terrainPath)
{
long _result = 0;
_com_dispatch_method(this, 0x3, DISPATCH_METHOD, VT_I4, (void*)&_result, L"\x0008", (BSTR)terrainPath);
return _result;
}
_com_error::Desprition 返回 {<错误的指针>(1)} _bstr_t
e {-2147352571} _com_error &
附:
1)异常处理代码
try
{
m_iDisplay->OpenTerrain(bsTerrainFielPath);
}
catch(_com_error &e)
{
e.Description();
}
2 )程序在在tli文件--OpenTerrain函数的_con_dispatch_method调用时中断。
inline long IInterface::OpenTerrain(_bstr_t terrainPath)
{
long _result = 0;
_com_dispatch_method(this, 0x3, DISPATCH_METHOD, VT_I4, (void*)&_result, L"\x0008", (BSTR)terrainPath);
return _result;
}
#8
你可以把代码发给我,我帮你调试一下
gw_net@163.com
gw_net@163.com
#9
已经搞定。是参数类型的问题。当使用向导添加方法时,选择参数类型为BSTR,但是在相应的实现函数中参数类型为LPCTSTR。而不是BSTR
#10
#1
接口是否正确获得,
你可以用
try
{}
catch(_com_error &e)
{
e.Description();
}
看下错误描述
你可以用
try
{}
catch(_com_error &e)
{
e.Description();
}
看下错误描述
#2
楼主还是自己调试吧!这样描述,很难找到问题所在!
出现这种错误,原因有很多:比如指针没有初始化、内存访问越界。。。。。
出现这种错误,原因有很多:比如指针没有初始化、内存访问越界。。。。。
#3
调试看看
#4
同意ls的,Debug下打开call stack窗口,看看运行到哪个函数抛出了该异常的
#5
接口是否正确使用,
参数是否正确,
ansi和unicode的问题
debug了,问题太抽象,情况有多种
参数是否正确,
ansi和unicode的问题
debug了,问题太抽象,情况有多种
#6
用call stack窗口,单步调试看看吧
#7
抛出的异常为:(以下为监视出口内容)
_com_error::Desprition 返回 {<错误的指针>(1)} _bstr_t
e {-2147352571} _com_error &
附:
1)异常处理代码
try
{
m_iDisplay->OpenTerrain(bsTerrainFielPath);
}
catch(_com_error &e)
{
e.Description();
}
2 )程序在在tli文件--OpenTerrain函数的_con_dispatch_method调用时中断。
inline long IInterface::OpenTerrain(_bstr_t terrainPath)
{
long _result = 0;
_com_dispatch_method(this, 0x3, DISPATCH_METHOD, VT_I4, (void*)&_result, L"\x0008", (BSTR)terrainPath);
return _result;
}
_com_error::Desprition 返回 {<错误的指针>(1)} _bstr_t
e {-2147352571} _com_error &
附:
1)异常处理代码
try
{
m_iDisplay->OpenTerrain(bsTerrainFielPath);
}
catch(_com_error &e)
{
e.Description();
}
2 )程序在在tli文件--OpenTerrain函数的_con_dispatch_method调用时中断。
inline long IInterface::OpenTerrain(_bstr_t terrainPath)
{
long _result = 0;
_com_dispatch_method(this, 0x3, DISPATCH_METHOD, VT_I4, (void*)&_result, L"\x0008", (BSTR)terrainPath);
return _result;
}
#8
你可以把代码发给我,我帮你调试一下
gw_net@163.com
gw_net@163.com
#9
已经搞定。是参数类型的问题。当使用向导添加方法时,选择参数类型为BSTR,但是在相应的实现函数中参数类型为LPCTSTR。而不是BSTR