scrrun.dll 中的 ATL 和类型

发布于 2024-09-02 11:21:57 字数 211 浏览 6 评论 0原文

我在 ATL 项目中有一个接口,它必须包含带有 Scripting::IDictionary** 参数的成员,但在带有接口描述的 MIDL 文件中这是不可能的,因为默认库中不存在脚本库。我总是有 scrrun.tlb 并尝试在 MIDL 中使用它,但它不起作用

代码在这里: 56U5M/Capture.PNG" rel= “nofollow noreferrer”>midl-code

I have interface in ATL project which must contains member with parameter of Scripting::IDictionary** but in MIDL file with description of my interface it's not possible because Scripting library is not presented in default library. I always have scrrun.tlb and trying to use it in MIDL but it's not work

Code is here: midl-code

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

堇色安年 2024-09-09 11:21:57

将以下内容添加到您的 IDL:

importlib("scrrun.dll");

然后您可以使用 IDictionary

适用于 XP 及更高版本的我。

以下是我的一些 IDL 的片段:

import "oaidl.idl";
import "ocidl.idl";

library FooLib
{
    importlib("stdole2.tlb");
    importlib("scrrun.dll");

    [
        uuid(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX),
        helpstring("_FooLibEvents Interface")
    ]
    dispinterface _IFooEvents
    {
        properties:
        methods:
        [id(1)] void AnEvent(IDictionary* dict);
    };
    ...
}

Add the following to your IDL:

importlib("scrrun.dll");

Then you can use IDictionary.

Works for me on XP and up.

Here is a snippet of some of my IDL:

import "oaidl.idl";
import "ocidl.idl";

library FooLib
{
    importlib("stdole2.tlb");
    importlib("scrrun.dll");

    [
        uuid(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX),
        helpstring("_FooLibEvents Interface")
    ]
    dispinterface _IFooEvents
    {
        properties:
        methods:
        [id(1)] void AnEvent(IDictionary* dict);
    };
    ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文