一个有挑战性的难题(会.NET&C++的达人进)

qimini 2005-09-19 06:38:21
.NET写的COM程序,C++如何调用?VB已经调用成功

.NET部分代码
using System;

namespace Default
{
[ComVisible(true),
Guid("694E2C36-81A8-420E-BFB8-A0E038932952"),
ClassInterface(ClassInterfaceType.AutoDispatch)]
public class Sample
{
public Sample()
{
}
[ComVisible(true)]
public string GetValue(string key)
{
return "value";
}
}
C++如何才能调用?
...全文
243 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qimini 2005-09-27
  • 打赏
  • 举报
回复
问题已经解决,谢谢楼上各位


phoenix96_2000 2005-09-21
  • 打赏
  • 举报
回复
不用管,VC经常这样,你根据它的定义就行了
最后能够编译运行就OK了
qimini 2005-09-20
  • 打赏
  • 举报
回复
// Created by Microsoft (R) C/C++ Compiler Version 13.10.3077 (cb92aaed).
//
// c:\docume~1\lawslu~1\locals~1\temp\Default.tlh
//
// C++ source equivalent of Win32 type library ..\Default.tlb
// compiler-generated file created 09/20/05 at 08:36:34 - DO NOT EDIT!

#pragma once
#pragma pack(push, 8)

namespace Default{

//
// Forward references and typedefs
//

struct __declspec(uuid("f0856282-0a91-3a63-8e8e-6dbbcb2cd855"))
/* LIBID */ __Default;
struct /* coclass */ Sample;
struct __declspec(uuid("97705ea0-e525-3a00-abe1-f36b395ccd92"))
/* dual interface */ _Sample;

//
// Smart pointer typedef declarations
//

_COM_SMARTPTR_TYPEDEF(_Sample, __uuidof(_Sample));

//
// Type library items
//

struct __declspec(uuid("634e2c36-81a8-420e-bfb8-a0e038932951"))
Sample;
// [ default ] interface _Sample
// interface _Object

struct __declspec(uuid("97705ea0-e525-3a00-abe1-f36b395ccd92"))
_Sample : IDispatch
{};

} // namespace Default

#pragma pack(pop)
qimini 2005-09-20
  • 打赏
  • 举报
回复
我的 p.CreateInstance有三个参数?

1、LPCWSTR clsidString
2、IUnkown * pOuter
3、DWORD dwclsContext=CLSCTX_ALL

还有对象现在可以出来了,但是无法自动感知对象的方法?在输入->号后,感知列表中没有对象的方法列表

请高手帮助~~~~
qimini 2005-09-20
  • 打赏
  • 举报
回复
我顶
phoenix96_2000 2005-09-19
  • 打赏
  • 举报
回复
通过msxml吗,一样的用法
换成你的组件CLSID和接口就行了,#import后,不附加上某个参数的话,VC会自动为你生成Wrapper,你使用它的smart pointer wrapper就行了

#import "component.dll" named_guids

IXXXXXPtr p;
if(FAILED(p.CreateInstance(CSLID_XXXXX))
return false;

p->SomeMethod();
qimini 2005-09-19
  • 打赏
  • 举报
回复
楼上的,能给点代码吗?就者我的例子,急啊~~~这里多谢了


我的mail :qimini at msn.com

把at替换成@

  • 打赏
  • 举报
回复
应该是和正常的com用法一样吧,用coCreateInstance创建实例

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧