设为首页
收藏本站
切换到宽版
首页
Portal
论坛
BBS
图库
资讯
导读
Guide
动态
Space
排行榜
Ranklist
帮助
Help
记录
Doing
登录
立即注册
ROOT开源
»
论坛
›
ROOT资讯
›
科技
›
简单Com组件的开发和使用
返回列表
发布新帖
简单Com组件的开发和使用
IP属地:
四川省成都市
255
0
[db:作者]
Lv.6
发表于 2023-5-29 00:58:21
|
查看全部
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
以前在windows服务器上使用过Asp+Com的方式。记录Com组件开发的一些回忆,可能不准确。Com开发关键是参数的传入和传出。字符串使用BSTR,整数long。首先新建一个atl com appwizard工程。参数示例:[in] BSTR parm1,[in] long parm2,[out] BSTR*parm3,[out]long *parm4,[out, retval] long* ret 或 [out, retval] BSTR* retstring. 还可以“add property”,添加属性,将自动添加get_函数。只要在函数中返回对应的值。unicode模式下,字符串使用OLECHAR来定义。
以前在windows服务器上使用过Asp+Com的方式。记录Com组件开发的一些回忆,可能不准确。使用工具:vc6。
Com开发关键是参数的传入和传出。我只使用了字符串和整数。字符串使用BSTR,整数long。
首先新建一个atl com appwizard工程。
1、插入一个“atl class”。
2、函数的添加,classview模式,右键点击接口名,选择"add method"。举例:
返回值:HRESULT
函数名:自己定义
参数示例:[in] BSTR parm1,[in] long parm2,[out] BSTR*parm3,[out]long *parm4,[out, retval] long* ret 或 [out, retval] BSTR* retstring
[in]为传入参数
[out]为传出参数
[out,retval]为返回值,只能一个
确定后,vc6自动生成class中的函数声明:
STDMETHOD(函数名)(BSTR parm1,long parm2,BSTR *parm3, long *parm4,long *ret 或 BSTR *retstring);
在idl文件中自动生成:
interface 接口名 : IDispatch
{
[id(顺序号), helpstring("帮助字符串")] 添加的method声明;
.....
};
还可以“add property”,添加属性,将自动添加get_函数。只要在函数中返回对应的值。以后在asp中就可以用"对象.属性"的方式来获取值。
3、BSTR转化为字符串,使用CString最方便:
CString str=BSTR串;
如果工程是unicode模式,则可以直接把BSTR作为字符串(OLECHAR *)使用,使用SysStringByteLen(BSTR串)来获取长度。
unicode模式下,字符串使用OLECHAR来定义。字符串转化为整数是_wtoi()。字符串常量加L:L"字符串"。
4、返回值,字符串转化为BSTR
多字节模式:
BSTR A2WBSTR(char *);
unicode模式:
BSTR SysAllocString(OLECHAR *);
......
6、class实现后,编译并注册com组件(用regsvr32命令)。
7、asp调用com
dim obj
set obj=Server.CreateObject("文件名.class名")
调用函数:
obj.func(参数)
最后
set obj=nothing
8、c语言调用com组件
#import "com文件名.dll" no_namespace
#include "atlbase.h"
CLSID comid;
CLSIDFromProgID(OLESTR("文件名.class名"),&comid);
CComPtr
pfunc;
pfunc.CoCreateInstance(comid);
_variant_t a=pfunc->函数(参数);
if(a.vt != VT_NULL){
ret=_ttoi((LPCTSTR)(_bstr_t)a); //ret转换为整数
}
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发布新帖
回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
[db:作者]
Lv.6 化神
主题
1686
回帖
2
积分
1721
+ 关注
发消息
图文热点
抖音/快手下载工具v2.7 支持点赞下载 下载
122 人气
#工具
AsrTools:智能语音转文字工具
116 人气
#工具
天盾网络验证离线版,带全套教程
2299 人气
#工具
已解决:diacuz3.5手机触屏版如何修改帖子
89 人气
#杂谈
推荐话题
1
Topaz Video AI 4.2.2(智能视频无损放大)汉化简体中文版
2579 阅读
善渊
2
天盾网络验证离线版,带全套教程
2299 阅读
道法孜然
3
Topaz Gigapixel AI 7.1.0(人工智能图片降噪软件)简体中文汉化版
2353 阅读
善渊
4
【4.16 更新V1.2】支持多人配音、全局间隔、免费微软配音工具
1495 阅读
善渊
5
免费AI变声神器!多样音源任你选,让你的声音瞬间变身!
1321 阅读
善渊
最新发布
GPT-SoVITS-WebUI 强大的少样本语音转换与
基于Emotion2Vec模型的批量音频情感自动标
克隆素材要求
已解决:diacuz3.5手机触屏版如何修改帖子
花卷有声小说下载器(2024/10/24更新到V1.1.
突破123盘1G下载限制工具分享
抖音/快手下载工具v2.7 支持点赞下载 下载
CompressO 版本V1.2.0一个视频压缩工具,可
关于我们
关于我们
加入我们
新闻动态
联系我们
服务支持
官方商城
官方QQ群
常见问题
售后服务
投诉/建议联系
908164873@Qq.com
让我们一起寻找开源的乐趣
加入QQ群把ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
关注公众号
添加微信客服
Copyright © 2001-2024
ROOT开源
版权所有
All Rights Reserved.
网站地图
|
仅供演示
|
仅供演示
关灯
在本版发帖
官方QQ群
QQ客服
返回顶部
快速回复
返回顶部
返回列表