如何在Native Visual C中轻松使用COM组件
发布时间:2020-12-16 03:38:37 所属栏目:百科 来源:网络整理
导读:我正在尝试构建一个在VisualStudio ’05中使用COM组件的应用程序 在本地C. MSDN中原生和管理的事物的混合完全毁了我的 脑. (我认为MSDN在这方面是一团糟) 我需要一个简短的原生C代码示例来加载我的Component 并使其可用. 我很好用编译器创建包装器等. 请不要
我正在尝试构建一个在VisualStudio ’05中使用COM组件的应用程序
在本地C. MSDN中原生和管理的事物的混合完全毁了我的 脑. (我认为MSDN在这方面是一团糟) 我需要一个简短的原生C代码示例来加载我的Component 并使其可用. 我很好用编译器创建包装器等. 请不要建议我使用基于对话框的MFC示例,因为 这可能是本机com与托管com的问题吗? 我完全迷失了,请给我一些支持…… 编辑:谢谢你的帮助. 澄清:我只有OCX和文档中的线索 解决方法
完整的工作示例(正是您所需要的)来自我的博客文章:
How to Call COM Object from Visual Studio C++?
// https://helloacm.com/how-to-call-com-object-from-visual-studio-c/ #include <iostream> #include <objbase.h> #include <unknwn.h> #include <Propvarutil.h> #import "wshom.ocx" no_namespace,raw_interfaces_only using namespace std; int main() { HRESULT hr; CLSID clsid; CoInitializeEx(nullptr,COINIT_MULTITHREADED); CLSIDFromProgID(OLESTR("WScript.Shell"),&clsid); IWshShell *pApp = nullptr; hr = CoCreateInstance(clsid,nullptr,CLSCTX_INPROC_SERVER,__uuidof(IWshShell),reinterpret_cast<LPVOID *>(&pApp)); if (FAILED(hr) || pApp == nullptr) { throw "Cannot Create COM Object"; } int out; VARIANT s; InitVariantFromInt32(0,&s); VARIANT title; InitVariantFromString(PCWSTR(L"title"),&title); VARIANT type; InitVariantFromInt32(4096,&type); BSTR msg = ::SysAllocString(L"Hello from https://helloacm.com"); pApp->Popup(msg,&s,&title,&type,&out); CoUninitialize(); cout << "Out = " << out; return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |