【问题标题】:Error C3867: Functional call missing argument错误 C3867:函数调用缺少参数
【发布时间】:2012-02-01 19:49:55
【问题描述】:

我收到以下错误:

错误 1 ​​错误 C3867: 'CHelloproxy::Hello': 函数调用缺少参数列表;使用 '&CHelloproxy::Hello' 创建指向成员 c:\users\uma\documents\visual studio 2008\projects\nproject\nproject\Helloproxy.h 24 Nproject 的指针

HRESULT hr = CoCreateInstance(
        __uuidof(Hello),            // Request Hello object
        NULL,                   // This is not an aggregate
        CLSCTX_INPROC_SERVER,   // COM object in client’s address space
        __uuidof(IHello),             // Request IHello interface pointer
        (void **) &pIHello);

【问题讨论】:

  • 你试过__uuidof(CHelloproxy)吗?
  • 没有。一定是__uuidof(Hello)
  • 编译器认为你正试图形成一个指向 CHelloproxy::Hello 的成员指针,一个函数。您是否可能在某些 CHelloproxy 方法中执行此操作,并且您需要限定 Hello 标识符以引用类外部的内容?你的评论说你想要一个 Hello 对象。
  • 我有两个 Hello 函数。一个是 CHelloproxy::Hello,另一个是从另一个 dll 文件导入的。我正在从 CHelloproxy::Hello 函数调用 dll 的 Hello 函数。我说清楚了吗?
  • 问题是我的。我的 COMClass 名称和函数名称都与“Hello”相同。因此,编译器将 COMClass 名称识别为函数名称。我更改了函数名称。现在一切正常......感谢您的支持。

标签: c++ visual-studio visual-c++ com


【解决方案1】:

编译器文档说: “您试图获取成员函数的地址,而没有使用其类名和地址运算符来限定成员函数。”

http://msdn.microsoft.com/en-us/library/b0x1aatf%28v=vs.80%29.aspx

您是否不小心将成员函数的名称作为参数传递?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2019-11-25
    • 2021-10-02
    • 1970-01-01
    相关资源
    最近更新 更多