gpt4 book ai didi

c# - C++ 使用 C# DLL。 InvokeHelper 的问题

转载 作者:行者123 更新时间:2023-11-28 08:23:15 24 4
gpt4 key购买 nike

我有一个 c# dll,非常简单:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassTestPourCPP
{
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDual)]
public class MainClass
{
public int GiveInt2()
{
return 2;
}
}
}

而且我希望我的 C++ 应用程序 (VC6) 使用它。所以我在启用“设置对 com 可见”选项的情况下构建了我的 dll。我重新加载了 DLL,所以我有了 tlb 文件。然后我在 IDE 中导入了 tlb,它生成了一个 .h & .cpp 文件,就像它应该的那样。

long _MainClass::GiveInt2()
{
long result;
InvokeHelper(0x60020004, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
return result;
}

现在的问题是,当我调用该方法时,它只是..没有影响,给我一个错误的输出(它在调用之前给出了结果的值,就像在 InvokeHelper 中有一个 try catch 一样)

为什么它不起作用? :(

非常感谢!

最佳答案

在尝试使用 COM 对象之前是否调用了 CoInitialize

关于c# - C++ 使用 C# DLL。 InvokeHelper 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com