`
deepfuture
  • 浏览: 4400573 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80078
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70049
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103358
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285827
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15014
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67568
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32154
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45991
社区版块
存档分类
最新评论

vb.net与matlab的混合编程

 
阅读更多

首先,使用deploytool工具或者命令行将matlab的m文件编译成类,结果产生动态链接库.dll文件和一些c#代码的类.

       第二步,将这些dll文件导入进去,并使用一些win32api函数,因为此m文件会产生figure窗口,这些api函数将此figure窗口嵌入到vb程序窗体里面.

      代码:

Imports System
Imports System.Runtime.InteropServices
Imports MathWorks.MATLAB.NET.Arrays
Imports MathWorks.MATLAB.NET.Utility
Imports SinImage.SinImage

Public Class SinForm
    Dim img As New SinImage.SinImage
    Dim FigureHwnd As IntPtr = IntPtr.Zero
    Public Declare Function SetParent Lib "user32" Alias "SetParent" _
    (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
    Public Declare Function GetWindowLong Lib "User32.Dll" Alias "GetWindowLongA" _
    (ByVal hWnd As System.IntPtr, ByVal nIndex As Integer) As Integer
    Public Declare Function SetWindowLong Lib "User32.Dll" Alias "SetWindowLongA" _
    (ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
    Public Declare Function MoveWindow Lib "user32" Alias "MoveWindow" _
    (ByVal hwnd As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal Flags As Boolean) As Boolean

    Private Sub number_NUD_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles number_NUD.Click
        img.sx(number_NUD.Value)
        Move_Window()
    End Sub

    Private Sub SinForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        img.sx(number_NUD.Value)
        Threading.Thread.Sleep(300)
        Do While FigureHwnd = IntPtr.Zero
            FigureHwnd = FindWindow(Nothing, "Figure 1")
            Threading.Thread.Sleep(100)
        Loop
        SetWindowLong(FigureHwnd, -16, GetWindowLong(FigureHwnd, -16) And (Not &HC00000))
        SetParent(FigureHwnd, Me.image_GBX.Handle)
        Move_Window()
    End Sub

    Private Sub Move_Window() Handles Me.Resize
        MoveWindow(FigureHwnd, -3, -20, Me.image_GBX.Width + 8, Me.image_GBX.Height + 54, True)
        Me.Refresh()
    End Sub
End Class
其实可以将m文件的c#代码,直接使用csc.exe编译成.netmodule文件,然后将应用此m文件包含的函数的.vb文件也使用vbc.exe编译成exe文件,这里面要将csc.exe编译的.netmodule文件引用到vbc.exe编译中.

        若m文件不产生figure窗口,程序就更简单,直接导入.dll文件,并使用其中的函数即可.

分享到:
评论

相关推荐

    关于vb.net与matlab混合编程.rar

    Imports MathWorks.MATLAB.NET.Arrays Imports MathWorks.MATLAB.NET.Utility Imports SinImage.SinImage Public Class SinForm Dim img As New SinImage.SinImage Dim FigureHwnd As IntPtr = IntPtr.Zero ...

    MATLAB与VB.NET混合编程方法在伺服机构动态测试中的应用.pdf

    为了解决这一问题,本文探讨了MATLAB与***混合编程方法的应用,以提高测试效率和准确性。 ***是一种具有友好编程界面的编程语言,它使用起来方便快捷,尤其适合开发用户界面。然而,在进行科学计算时,***的编程...

    在VB.NET中应用Matlab实现三维数据可视化.pdf

    我们可以使用 ActiveX 自动化技术来应用和操作 Matlab,实现 Matlab 和 VB.NET 的混合编程,并基于此方法实现了对三维数据的可视化。同时,我们也可以使用 Matlab 和 VB.NET 的各种图形工具和控件来实现三维数据可视...

    Matlab与VB.NET混合编程中数据存储方式的研究.pdf

    在混合编程领域中,Matlab与***的结合使用十分广泛,特别是在需要复杂数值计算与用户界面友好性的应用中。Matlab提供了强大的数学计算功能和丰富的函数库,而***则以其简易性和强大的面向对象编程能力而备受青睐。在...

    vb和matlab混合编程

    在IT行业中,VB(Visual Basic)和MATLAB是两...综上所述,VB和MATLAB混合编程是一种高效利用各自优势的方法,能够实现复杂计算与用户交互的良好结合。掌握好这种技术,对于提升工程软件的效率和用户体验具有重要意义。

    基于Matlab与VB.Net混合编程的信号建模预测系统.pdf

    本文主要介绍了一种基于Matlab与VB.Net混合编程的信号建模预测系统。这个系统结合了两种强大的工具,旨在实现对各种信号的分析、处理和预测功能,尤其适用于科研和工程领域的信号数据处理。 1. **混合编程技术**:...

    Matlab、Access和VB.NET混合编程方法的研究和应用.zip

    本主题聚焦于“Matlab、Access和VB.NET混合编程方法的研究和应用”,旨在探讨如何将这三种强大的工具结合使用,以提升软件开发的效率和功能。 Matlab是一款广泛应用于科学计算、数据分析和算法开发的高级语言环境。...

    基于COM的VB与Matlab混合编程

    介绍了一种基于组件对象模型(componeniobjectModel,c0M)的Matlab与vB混合编程方法。它以Matlab6.5中 的MatlabCOMBullder模块为转换工具,将Matlab的M函数文件转换为COM组件后应用在vB程序中.集成后的软件不 仅能够...

    基于COM技术的Matlab和VB.Net混合编程.pdf

    根据提供的文件内容,以下为基于COM技术的Matlab与***混合编程的相关知识点: ### COM技术概述 COM(Component Object Model,组件对象模型)是一种二进制通讯规范,用于开发具有语言无关性的软件组件。其核心思想...

    VB和Matlab混合编程方法——MatrixVB.zip

    标题“VB和Matlab混合编程方法——MatrixVB.zip”提示我们,这个压缩包包含的是关于如何在VB中调用Matlab进行混合编程的资源,可能是一份详细的指南或教程。MatrixVB可能是一个特定的库或者接口,帮助VB程序与Matlab...

    vb与matlab混合编程资料

    下面,我们将深入探讨VB与MATLAB混合编程的主要方法。 1. **MATLAB Compiler SDK**:MATLAB Compiler SDK允许开发者将MATLAB代码编译为独立的可执行文件或.NET组件,然后在VB中调用。首先,你需要在MATLAB中创建一...

    matlab与VB混合编程

    实现VB与MATLAB混合编程的核心在于MATLAB的MEX文件或MATLAB编译器生成的.NET组件。MEX文件是MATLAB的C/C++接口,可以让外部程序调用MATLAB的函数。另一种方式是使用MATLAB Compiler将MATLAB函数转换为.NET组件,这样...

    vb_matlab通过activeX混合编程

    当需要结合两者的功能时,ActiveX技术提供了混合编程的可能性,允许VB调用MATLAB的功能,实现更强大的应用。 标题“vb_matlab通过activeX混合编程”指的是使用VB通过MATLAB的ActiveX接口来实现两者间的交互。...

    VB与Matlab混合编程的图像处理研究.pdf

    VB(Visual Basic)与Matlab混合编程主要应用于图像处理领域,这种技术结合了VB的图形用户界面设计优势和Matlab的强大计算及图像处理能力。VB6.0是微软开发的一种面向对象的编程环境,其特点是易于上手,能快速构建...

    VB与Matlab混合编程的仿真应用.zip

    本资料"VB与Matlab混合编程的仿真应用.zip"探讨的就是如何将这两个工具整合在一起,以实现更复杂的仿真应用。 在VB中调用MATLAB主要通过MATLAB Compiler SDK进行,它允许开发者将MATLAB代码编译成可独立运行的DLL或...

    Matlab混合编程(清华BBS).pdf

    Matlab混合编程是指将Matlab与其他编程语言如C、C++、VB或.NET进行集成,以利用Matlab强大的数值计算和数据分析能力,同时结合其他语言的系统级功能和效率。以下主要介绍几种常见的Matlab混合编程方法。 1. **...

    关于实现VB与matlab混合编程的方法.zip

    **VB与MATLAB混合编程的原理** MATLAB提供了MATLAB Compiler工具,可以将MATLAB代码编译为独立的可执行文件或动态链接库(DLL),供其他编程环境调用。在VB中,我们可以创建一个接口来调用这些DLL,从而实现与MATLAB...

    VB与Matlab混合编程探讨 (2).rar

    3. **VB与Matlab接口**:通过MATLAB Compiler,Matlab可以生成可被其他编程语言调用的DLL或.NET组件,使得VB能够直接调用Matlab编写的函数和脚本,实现两者的混合编程。 4. **COM接口**:Matlab支持通过COM...

Global site tag (gtag.js) - Google Analytics