• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 最简单的ATL开发,自定义method中参数传递问题:在测试程序中无法将参数传递到Com中?

最简单的ATL开发,自定义method中参数传递问题:在测试程序中无法将参数传递到Com中?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了最简单的ATL开发,自定义method中参数传递问题:在测试程序中无法将参数传递到Com中?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 最简单的ATL开发,自定义method中参数传递问题:在测试程序中无法将参数传递到Com中?
描述:

cpp部分内容:
STDMETHODIMP CLog::get_type(long *pVal)
{
// TODO: Add your implementation code here
*pVal = m_type;
return S_OK;
}
STDMETHODIMP CLog::put_type(long newVal)
{
// TODO: Add your implementation code here
m_type = newVal;
return S_OK;
}
--------------------------------------------------------
idl:
interface ILog : IDispatch
{
[id(1), helpstring("method Test")] HRESULT Test([out, retval]long *pVal);
[propget, id(2), helpstring("property type")] HRESULT type([out, retval] long *pVal);
[propput, id(2), helpstring("property type")] HRESULT type([in] long newVal); };
------------------------------------------
测试程序:
ILog  log;
long test = 0;
log.SetType(1000);
test = log.GetType();
---------------------
说明:
   编译通过,就是test无法赋值.
  
   怎么回事?
   谢谢,解决后马上给分!


解决方案1:

"ILog  log;log.SetType(1000);"????你是这么调用方法的?难怪会错误!

解决方案2:

if(!AfxOleInit())
AfxMessageBox("WRONG!");;
HRESULT hr;
         IPDFVw *ppvPDFVw = NULL;//对应clsid
ICreateRTF *ppvaaa = NULL;//对应iid
HRESULT l = NULL;
hr=CoCreateInstance(CLSID_PDFVw,NULL,CLSCTX_LOCAL_SERVER ,IID_IPDFVw,(void**)&ppvPDFVw);
if(SUCCEEDED(hr))
{
l = ppvPDFVw->SomeMethod();
ppvPDFVw->Release();
}
else
AfxMessageBox("WRONG!");

解决方案3:

不知道你的属性是怎么添加的,但是你用法好像是不对!呵呵

解决方案4:

ILog  log;
long test = 0;
log.SetType(1000);
test = log.GetType();
不是这样用的。
//IID_IGetNumber
this->UpdateData();
::CoInitialize( NULL );
IGetNumber *pGN = NULL;
CLSID clsid = CLSID_GetNumber;
HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER,
IID_IGetNumber, (void **)&pGN);
if(FAILED(hr)) 
{
AfxMessageBox("生成接口出错,可能没有初使化com!");
::CoUninitialize();
return;
}
CComBSTR str = m_value;
long ret = 0;
pGN->GetUserCount(str,&ret);
CString str2;
str2.Format("the res %d",ret);
AfxMessageBox(str2);
::CoUninitialize();


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 最简单的ATL开发,自定义method中参数传递问题:在测试程序中无法将参数传递到Com中?

相关文章

  • 2017-06-04 新手提问急
  • 2017-06-04 请问静态链接库可以加入类吗?
  • 2017-06-04 VC读取RTF文件,如何得到RTF文件的行数?
  • 2017-06-05 怎么从资源文件中提取字串资源?字串是多国语言文字。
  • 2017-06-04 [jiangsheng(蒋晟Net[MVP])]请进,帮忙,多谢
  • 2017-06-05 急急急急,请教在利用ActiveX控件来进行程序界面设计,在VC调用此OCX按下按钮就假死
  • 2017-06-04 问个问题关于excel调用
  • 2017-06-04 VC2005如何添加事件和虚函数
  • 2017-06-05 能否把一个dll再封一层形成一个新的dll?
  • 2017-06-05 请问:脚本语言如何调用IDispatch接口

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ActiveX打包成CAB嵌入页面,访问页面时需要登录服务器是什么原因?
    • 哪儿有文件过滤驱动开发包IFSKIT下载。
    • mscomm打开端口3389
    • 在服务程序中用GetUserName不能得到当前登录用户名字?
    • 100分求正确方案运行时库设定不同运行结果不同
    • StgCreateStorageEx定义函数指针怎么有问题啊??求助
    • _variant_t类型中中的bstrVal转换为BSTR可以吗,我转换后发现我的字符串刚好少一个字符,怎么回事
    • 如何解决运行线程时,时间一长就出错“虚拟内存不足,请重新分配”字样的问题!
    • 请问如何在2个进程间一个是多线程数据采集程序,一个是画面显示程序传递大量数据?
    • 学COM用什么书

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有