什么时候才需要用到代理/存根? 好像没有这个dll,com组件也可以被创建啊? 如果通过import,注册com组件方式,那么就可以不需要ps来调用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是的,我就是编译完了com组件以后有注册,然后在我的工程里面通过#import来调用。你的意思是,可以不注册这个com组件? 在我的应用程序里面也不用import这个tlb? 只需要调用p/s这个dll,我就能和com组件通信了。是这样的吗?谢谢。 不是啊。我做了一个实验。我1. 建立了一个ATL工程叫做ATLProject2,立刻删除相应的PS工程及其所有文件。2. 给ATL工程添加一个简单的ATL对象叫做My,给My增加一个函数叫做Func,代码如下:STDMETHODIMP CMy::Func(int i, int* o){ // TODO: Add your implementation code here *o = i + 1; return S_OK;}然后我写一个控制台程序:#import "..\ATLProject2\Debug\ATLProject2.tlb" no_namespaceint _tmain(int argc, _TCHAR* argv[]){ CoInitialize(NULL); IMyPtr p; p.CreateInstance(__uuidof(My), NULL, CLSCTX_ALL); int i = p->Func(1); cout << i << endl; CoUninitialize(); return 0;}程序打印输出2,如我的预期。所以看起来即使是跨进程调用(我的com是个exe),仍然可以不需要代理/存根?不知道我的理解有没有问题,还请指教 是的,我就是编译完了com组件以后有注册,然后在我的工程里面通过#import来调用。你的意思是,可以不注册这个com组件? 在我的应用程序里面也不用import这个tlb? 只需要调用p/s这个dll,我就能和com组件通信了。是这样的吗?谢谢。我是说如果注册了,同时你程序又用的import方式,那么就不需要PS了但是有很多情况,程序不会用import方式,那么就通过ps来做 Cookbook 是什么意思? 基于CDialog的对话框画图可以不在OnPaint函数中吗? MFC+opengl 顶点缓存问题请教 如何隐藏某一程序在任务栏通知区域的显示 请教WINDOWS程序设计 怎么用程序得到U盘的序列号?(是硬件序列号,不是卷号,急,顶者有分,谁回答出来再另开贴给分) 我用VC写的播放器,怎么才能实现多路回放呢? 比较频繁的取数据库的数据,想随机抽取5条记录出来,重复的几率越笑越好,谁能帮我? 求助 怎样在FormView中使用滑标控件? 程序变一变,过程很麻烦!!!请高手支招! 如何在用户未登录前弹对话框 怎么判断socket消息队列为空?
不是啊。我做了一个实验。我
1. 建立了一个ATL工程叫做ATLProject2,立刻删除相应的PS工程及其所有文件。
2. 给ATL工程添加一个简单的ATL对象叫做My,给My增加一个函数叫做Func,代码如下:STDMETHODIMP CMy::Func(int i, int* o)
{
// TODO: Add your implementation code here
*o = i + 1;
return S_OK;
}然后我写一个控制台程序:#import "..\ATLProject2\Debug\ATLProject2.tlb" no_namespace
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
IMyPtr p;
p.CreateInstance(__uuidof(My), NULL, CLSCTX_ALL);
int i = p->Func(1);
cout << i << endl;
CoUninitialize();
return 0;
}
程序打印输出2,如我的预期。所以看起来即使是跨进程调用(我的com是个exe),仍然可以不需要代理/存根?不知道我的理解有没有问题,还请指教
我是说如果注册了,同时你程序又用的import方式,那么就不需要PS了
但是有很多情况,程序不会用import方式,那么就通过ps来做