如图的错误是什么原因?

cjhpt 2011-02-13 11:38:32
调用由dll导入的类方法
Cipapi1->IP_RegCall("OperReg", "111", "111","111","111","1111");

...全文
121 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjhpt 2011-02-14
  • 打赏
  • 举报
回复
然后在ipapi_dll_ocx.cpp中有
STR __fastcall TCipapi::IP_RegCall(BSTR func_id/*[in]*/, BSTR mhospital_id/*[in]*/,
BSTR organ_id/*[in]*/, BSTR user_id/*[in]*/,
BSTR user_pass/*[in]*/, BSTR user_newpass/*[in]*/)
{
BSTR pretval = 0;
OLECHECK(GetDefaultInterface()->IP_RegCall(func_id, mhospital_id, organ_id, user_id, user_pass,
user_newpass, (BSTR*)&pretval));
return pretval;
}
cjhpt 2011-02-14
  • 打赏
  • 举报
回复
这是ipapi_dll_ocx.h中
class PACKAGE TCipapi : public Oleserver::TOleServer
中的一个成员函数
BSTR __fastcall IP_RegCall(BSTR func_id/*[in]*/, BSTR mhospital_id/*[in]*/,
BSTR organ_id/*[in]*/, BSTR user_id/*[in]*/,
BSTR user_pass/*[in]*/, BSTR user_newpass/*[in]*/);
在另一个文件ipapi_dll_tlb.h中
interface Iipapi : public IDispatch中有下面
virtual HRESULT STDMETHODCALLTYPE IP_RegCall(BSTR func_id/*[in]*/, BSTR mhospital_id/*[in]*/,
BSTR organ_id/*[in]*/, BSTR user_id/*[in]*/,
BSTR user_pass/*[in]*/, BSTR user_newpass/*[in]*/,
BSTR* pretval/*[out,retval]*/) = 0;

My_Love 2011-02-14
  • 打赏
  • 举报
回复
http://wenku.baidu.com/view/90b6ab0bf78a6529647d534b.html
这是接口文件,你可以直接找技术支持。
My_Love 2011-02-14
  • 打赏
  • 举报
回复
BSTR需要2个0来结束字符串!
ccrun.com 2011-02-14
  • 打赏
  • 举报
回复
虽然不清楚IP_RegCall函数的原型,但是我考虑可能是最后一个参数引发的异常. 你试着定义一个BSTR *指针,然后将地址传入再试.
cjhpt 2011-02-14
  • 打赏
  • 举报
回复
图的内容如下:
(GetDefaultInterface()->IP_RegCall(funcid,mhospital_id,user_id,user_pass,user_newpass,(BSTR *)&pretval))Error:C0000005(-1073741819)@..\5.0\Imports\ipapi_dll_ocx.cpp/140 Press[Y]es to terminate,[N]o to continue and [C]ancel to Deubg.
ipapi_dll_ocx.cpp文件是由ipapi_dll.dll自动导入的。
ccrun.com 2011-02-13
  • 打赏
  • 举报
回复
你贴的硬盘图,除了你,别人看不到。
1cctv 2011-02-13
  • 打赏
  • 举报
回复
那个DLL中的类导出的有问题.
估计是头文件不全.

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧