gpt4 book ai didi

c++ - 在 C++ 中调用 VB 的 CreateObject 方法

转载 作者:可可西里 更新时间:2023-11-01 09:26:25 24 4
gpt4 key购买 nike

我正在尝试从我的 C++ 代码中调用 Visual Basic 的 CreateObject 方法。在 VB 中,我只需键入:

Dim obj 作为对象obj = CreateObject("WScript.Network")

这会返回我可以从中调用更多方法的对象。但是我怎么能在 C++ 中做到这一点呢?我正在关注 http://msdn.microsoft.com/en-us/library/bb776046(v=VS.85).aspx 中的 MSDN 文档,但这些参数非常晦涩,我无法弄明白。

第一个参数是对 CLSID 的引用,我可以从注册表中看到“WScript.Network”的 CLSID 是 {093FF999-1EA0-4079-9525-9614C3504B74}。但是这个参数和第三个REFIID有什么区别呢?

提前致谢!

最佳答案

我将提供我的解决方案,仅供记录。它调用 AddWindowsPrinterConnection 来安装网络打印机。它要求用户确认,所以如果你想绕过它,你需要将 HKEY_CURRENT_USER/Printers/LegacyPointAndPrint/DisableLegacyPointAndPrintAdminSecurityWarning 设置为 1(你可以在一切完成后将其改回 0)。

CoInitialize(NULL);
{
ATL::CComPtr<IDispatch> test;
_variant_t printerConnection = "\\\\serverAddress\\printerName";
_variant_t result;
test.CoCreateInstance(L"WScript.Network");
test.Invoke1(L"AddWindowsPrinterConnection", &printerConnection, &result);
}

CoUninitialize();

关于c++ - 在 C++ 中调用 VB 的 CreateObject 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054014/

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