HOME> 每日趣玩> 请问c语言如何调用com组件?
{$vo.文章标题}
{$vo.文章标题}

请问c语言如何调用com组件?

admin
5231

社区

C语言 帖子详情 请问c语言如何调用com组件? firewangcool 2006-10-17 06:45:43 兄弟对c语言不是很熟悉,现在需要做一个和clear quest有关的项目;

clear quest提供了com组件,并且给了一些关于vb调用clear quest的com组件的api和例子,并且我已经用vb调用成功;

但是,我们的项目需要用c语言来实现这个com组件的调用,现在不知道该怎么实现?

vb能够调用的com组件c语言能调用吗?

提供一些vb调用的例句,谁能提示我用c语言如何来实现这些功能?

Set oSession = CreateObject("CLEARQUEST.SESSION")oSession.UserLogon "tms_insert", "tms_insert", "TMS", AD_PRIVATE_SESSION, ""

Set oEntity = oSession.BuildEntity("TMS_RWXX")

oEntity.setFieldValue "fatherdocunid", doc.UniversalID

oEntity.setFieldValue "FLD_RWMSH", doc.rw_ms(0)

oEntity.setFieldValue "FLD_JHGZL", doc.rw_name(0)

str1 = oEntity.Validate

If str1 <> "" Then

Msgbox "str1=" & str1

End If

oEntity.Commit

Set oEntity = Nothing

Set oSession = Nothing

...全文

850 15 打赏 收藏 请问c语言如何调用com组件? 兄弟对c语言不是很熟悉,现在需要做一个和clear quest有关的项目; clear quest提供了com组件,并且给了一些关于vb调用clear quest的com组件的api和例子,并且我已经用vb调用成功; 但是,我们的项目需要用c语言来实现这个com组件的调用,现在不知道该怎么实现? vb能够调用的com组件c语言能调用吗? 提供一些vb调用的例句,谁能提示我用c语言如何来实现这些功能? Set oSession = CreateObject("CLEARQUEST.SESSION" 复制链接

扫一扫 分享 转发到动态 举报

写回复 配置赞助广告取 消

确 定

用AI写文章 15 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 firewangcool 2006-10-18 打赏举报 回复 呵呵,这就打分结贴! searingice 2006-10-18 打赏举报 回复 别着急谢,结了帖先。 firewangcool 2006-10-18 打赏举报 回复 真是谢谢各位啊!看来我还得找本com和c语言相关的书好好读读!

再次谢谢各位的回复! 飞哥 2006-10-17 打赏举报 回复 两行是一行! 飞哥 2006-10-17 打赏举报 回复 也可以这样访问

---------

这个是我写的

NtQuerySystemInformation = (long(__stdcall*)(DWORD, PVOID, DWORD, DWORD))

GetProcAddress( GetModuleHandle( "ntdll.dll" ),NtQuerySystemInformation"

); 飞哥 2006-10-17 打赏举报 回复 ◎◎simple test

========

◎◎

#include

#include

typedef int(*lpAddFun)(int, int); //宏定义函数指针类型

int main(int argc, char *argv[])

{

HINSTANCE hDll; //DLL句柄

lpAddFun addFun; //函数指针

hDll = LoadLibrary("..\\Debug\\dllTest.dll");

if (hDll != NULL)

{

addFun = (lpAddFun)GetProcAddress(hDll, "add");

if (addFun != NULL)

{

int result = addFun(2, 3);

printf("%d", result);

}

FreeLibrary(hDll);

}

return 0;

}

shone_sun 2006-10-17 打赏举报 回复 ::CoInitializeEx(NULL, COINIT_MULTITHREADED);

IMessengerPtr Messager = NULL;

HRESULT hr = Messager.CreateInstance(__uuidof(Messenger));

::CoUninitialize();

MSNMessager->方法 phidix 2006-10-17 打赏举报 回复 查COM相关函数,控件注册了以后注册表里有UUID和文件路径,忘了用什么函数了,随便找本COM原理的书就有。好像还要拿到接口的描述吧,.h文件或者IDL 飞哥 2006-10-17 打赏举报 回复 使用Windows API函数LoadLibray和GetProcAddress

FARPROC GetProcAddress(

HMODULE hModule, // handle to DLL module

LPCSTR lpProcName // name of function

);

Parameters

hModule

Handle to the DLL module that contains the function. The LoadLibrary or GetModuleHandle function returns this handle.

lpProcName

Pointer to a null-terminated string containing the function name, or specifies the function's ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero.

--------------------

firewangcool 2006-10-17 打赏举报 回复 我查了一下LoadLibrary是载入dll到内存中,我的cq的dll文件已经写入注册表中了,我在vb中就可以直接使用这个语句Set oSession = CreateObject("CLEARQUEST.SESSION")dll中的方法入口,在c语言中如何获得这个入口?用HINSTANCE h = LoadLibrary("yourcom.dll");就可以吗?

飞哥 2006-10-17 打赏举报 回复 不用客气

一起学习中! firewangcool 2006-10-17 打赏举报 回复 感谢wanfustudio(雁南飞:不慕虚名务潜修) 提示,谢谢 飞哥 2006-10-17 打赏举报 回复 #include

#include

void main()

{

HINSTANCE h = LoadLibrary("yourcom.dll");

} firewangcool 2006-10-17 打赏举报 回复 dll已经有了,我只会vb调用这个dll,不会c语言调用,所以请教一下大家,如何通过c语言写程序调用dll 飞哥 2006-10-17 打赏举报 回复 COM编译成DLL

调DLL C语言调用COM组件 本文介绍了如何在C++和C语言中调用COM组件,以Windows 7任务栏显示进度条的接口ITaskbarList4为例。C++通过CoCreateInstance创建接口实例,而C语言则需要手动构建与接口内存模型相同的结构体并提供虚函数表。虽然C语言的实现更复杂,但依然可以实现对COM组件的调用。 c 写跨语言dll,让COM组件可被跨语言调用 本文详细介绍了如何修正COM组件中的错误,使其支持自动化,并演示了VBScript和VB6环境下调用COM组件的过程。通过修改IDL文件,增加自动化接口,并实现IDispatch相关方法,使得组件能在不同环境中正确运行。此外,还展示了如何注册类型库,确保VBScript和VB6的兼容性。 使用COM方式实现不同语言之间的调用 本文详细介绍如何使用COM组件实现在C++、Delphi、VB6及C等不同编程语言间的相互调用,并提供具体实例代码。 c语言windows库函数,C语言访问Windows COM组件函数 本文详细介绍了Windows平台上的COM(Component Object Model)组件对象模型及其自动化扩展OLE(Object Linking and Embedding)。阐述了COM作为操作系统级别的面向对象技术,如何实现跨程序、跨系统的组件调用。同时深入探讨了OLE在此基础上增加的自动化功能,如WebBrowser类的使用,并提供了C语言调用COM的示例。 用标准C编写COM(二)COM in plain C,Part2 本文详细介绍了如何使用C语言编写一个COM组件,使其能够被VBScript、JScript等脚本语言调用,包括添加IDispatch接口、类型库、属性支持等内容。

C语言

70,037

社区成员

243,247

社区内容

发帖 与我相关 我的任务 C语言 C语言相关问题讨论 复制链接

扫一扫 分享 确定 社区描述 C语言相关问题讨论 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章