matlab调用c#COM的的例子_第1页
matlab调用c#COM的的例子_第2页
matlab调用c#COM的的例子_第3页
matlab调用c#COM的的例子_第4页
matlab调用c#COM的的例子_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、matlab 调用 c# COM+ 的的例子我们以下假设: matlab 版本:r2007adotnet:2005com使用 dotnet 的服务化组件来生成并发布在机器9 上,客户端使用 matlab 来调用这个组件。 1.使用 dotnet vs2005 来建立一个类库。 关键代码如下: User.cs: using System;using System.Collections.Generic;using System.Text;/添加 com 及数据库引用using System.EnterpriseServices;using System.Collectio

2、ns;using System.Windows.Forms;using System.Data.OleDb;using System.Data;/using System.Collections.Generic;/这里是实现一个 com 应用,包含 3 个实体user,Catalogue,Article; 分别表示用户、资料类别、资料/此模块最终被编译成 dll 并作为 com 部署在服务器。 并且被已经实现的被作为客户端的matlab 脚本调用/陈海 2009/3/15/* */namespace CharIdentifyCOMTransaction(TransactionOption.Re

3、quired)/声明为服务器应用程序,还可以选择Library ,表示为库应用程序public class User : ServicedComponentprivate string connectionString;public User() protected override void Construct(string s)connectionString = s;base.Construct(s);AutoComplete / 这就是一会儿我们要在客户端调用的方法public string getUserName()return "chenhai"/注意您要添加引

4、用System.EnterpriseServicesAssembly.cs:usingSystem.Reflection;using System.Runtime.CompilerServices;using System.Runtime.InteropServices;/ GeneralInformation about an assembly is controlled through the following/ set of attributes. Change these attribute values to modify the information/ associated w

5、ith an assembly.assembly: AssemblyTitle("CharIdentifyCOM")assembly: AssemblyDescription("")assembly: AssemblyConfiguration("")assembly: AssemblyCompany("ztc")assembly: AssemblyProduct("CharIdentifyCOM")assembly: AssemblyCopyright("Copyright ? zt

6、c 2009")assembly: AssemblyTrademark("")assembly: AssemblyCulture("")/ Setting ComVisible to false makes the types in this assembly not visible/ to COM components. If you need to access a type in this assembly from/ COM, set the ComVisible attribute to true on that type.assem

7、bly: ComVisible(true)/ The following GUID is for the ID of the typelib if this project is exposed to COMassembly:Guid("41dc3ec7-2b22-4f02-80eb-302c8930eb8c")/Version information for an assembly consists of the following four values:/Major Version/Minor Version/Build Number/Revision/ You ca

8、n specify all the values or you can default theRevision and Build Numbers/ by using the '*' as shown below:assembly: AssemblyVersion("")assembly: AssemblyFileVersion("")/assembly:AssemblyKeyFile(".CharIdentifyKey.snk") /2005中指定由 sn乎已经取消了。请在菜单 proje

9、ct->app properties->Signing->Sign the assembly生成的文件名2.打开vs的命令行,给dll生成强名称生成强命 名的文件E:masterterm2graduated_designprojdot_net_projCharI dentifyCOMCharIdentifyCOMbinDebug>sn -k CharIdentifyCOM.snkMicrosoft(R) .NET Framework Strong Name UtilityVersion2.0.50727.42Copyright (c) M

10、icrosoft Corporation.All rightsreserved.Key pair written to CharIdentifyCOM.snk3。注册comE:masterterm2graduated_designprojdot_net_projCharIdentifyCOMCharIdentifyCOMbinDebug>regsvcs /fc CharIdentifyCOM.dllMicrosoft (R) .NET Framework Services Installation UtilityVersion 2.0.50727.143Copyright (c)

11、 Microsoft Corporation.All rightsreserved.WARNING: The assembly does not declare anApplicationAccessControl Attribute.pplication security will be enabled by default.Installed Assembly:Assembly:E:masterterm2graduated_designprojdot_net_projCharI dentif yCOMCharIdentifyCOMbinDebugCharIdentifyCOM.dllApp

12、lication: CharIdentifyCOMTypeLib:E:masterterm2graduated_designprojdot_net_projCharI dentify masterterm2graduated_designprojdot_net_projCharIde ntifyCOMCharIdentifyCOMbinDebug> 这是你可以通过 "管理工具 "看到这个com 组件了 如果注册错误,可删除注册:regsvcs /uCharIdentifyCOM.dll4 。打开 matlab r2007a, 调用 COM: 在matlab 命

13、令行做 ,>>h=actxserver('CharIdentifyCOM.User','machine','9') % 生成到 com 的访问服务器句柄 hCOM.CharIdentifyCOM_User>>get(h,'getUserName') % 调用 com 的方法 ans =chenhai>> release(h) % 释放 h>> 我们这里 是最简单的验证,实际上,你可以在那个 User 类中实现更 复杂的逻辑,比如访问数据库并返回给某个方法。我们也没 有实现诸如 COM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论