从品牌网站建设到网络营销策划,从策略到执行的一站式服务
有两种方式:
创新互联专业为企业提供互助网站建设、互助做网站、互助网站设计、互助网站制作等企业网站建设、网页设计与制作、互助企业网站模板建站服务,十年互助做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
第一种就是将部分功能用C语言编写并使用DEF文件将函数导出做成DLL以供VB程序调用,调用时需要在VB中声明调用的接口(就象VB调用系统的API函数一样);
第二种就是将部分功能用C语言编写成COM组件并在系统中注册以供VB程序调用,调用时在VB的项目中添加对该COM组件的依赖,定义出该组件的对象直接调用(就象VB调用EXCEL等微软提供的COM组件一样);
如果你是使用的vb.net写的类库的话是在C#中是可以调用的,因为.net实现,跨平台和跨语言环境。
在c语言中每一个变量都有两个属性一个是值,一个是址。比如inta=2;变量a的值是2,变量a的地址,可以用取地址
操作符
获取,即a。因此以C语言的函数传递中具备两种方式传递参数,一种是传址,一种传值。比如voidf1(intv){;}//函数f1v
如果DLL不是你写的,且你要调用的函数不是__stdcall声明,VB直接调用是会报错的
如果DLL是你写的,注意调用约定问题,并看以下代码
***************************************************
以下是DLL代码
.cpp里这么写
extern "C"__declspec(dllexport) void __stdcall HelloWorld()
{
MessageBox(NULL,"HelloWorld","HelloWorld",NULL);
}
.def里这么写
LIBRARY "XXXX"
EXPORTS
; 此处以下添加
HelloWorld@1
*************************************************
vb里这么写
Public Declare Sub HelloWorld Lib "XXXX.dll" ()
然后调用就可以了,上面是VB的代码,或许VB.net的也差不多
按照我的理解,你的这个需求是没有办法做到的, 除非C#的dll被封装为了一个COM组件并且注册了,但是你的这个dll已经写成了,所以理论上来说应该不是com,而C#的程序集是不提供向前兼容的,所以用一个老的语言调用新的技术的组件是做不到的,不过也有一种可能性,不过很难实现,大体逻辑这样,首先通过vb调用一个native的组件,用C或者c++完成,在这个组件里面加载clr,在clr里面加载c#的程序集,实例化对象,执行调用
------------------------------------------00000000000000000000000000++++++++++++++++++
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图