VB 如何调用 c++ DLL?
```Class MainWindow
'ByVal 值传递 ByRef 引用传递
'Function 有返回值 Sub 无返回值
'C语言数据类型在VisualBasic中声明为调用时使用的表达式
'ATOM ByVal variable As Integer 结果为Integer 类型的表达式
'BOOL ByVal variable As Long 结果为 Long 类型的表达式
'Byte ByVal variable As Byte 结果为 Byte 类型的表达式
'Char ByVal variable As Byte 结果为 Byte 类型的表达式
'COLORREF ByVal variable As Long 结果为 Long 类型的表达式
'DWORD ByVal variable As Long 结果为 Long 类型的表达式
'HWND, HDC, HMENU ByVal variable As Long 结果为 Long 类型的表达式等Windows 句柄
'INT, UINT ByVal variable As Long 结果为 Long 类型的表达式
'Long ByVal variable As Long 结果为 Long 类型的表达式
'LPARAM ByVal variable As Long 结果为 Long 类型的表达式
'LPDWORD variable As Long 结果为 Long 类型的表达式
'LPINT, LPUINT variable As Long 结果为 Long 类型的表达式
'LPRECT variable As Type 自定义类型的任意变量
'LPSTR, LPCSTR ByVal variable As String 结果为 String 类型的表达式
'LPVOID variable As Any 任何变量(在传递字符串的时候使用ByVal)
'LPWORD variable As Integer 结果为Integer 类型的表达式
'LRESULT ByVal variable As Long 结果为 Long 类型的表达式
'NULL As Any 或 ByVal Nothing 或
'ByVal variable As Long ByVal 0& 或 VBNullString
'Short ByVal variable As Integer 结果为Integer 类型的表达式
'VOID Sub procedure() 不可用
'WORD ByVal variable As Integer 结果为Integer 类型的表达式
'WPARAM ByVal variable As Long 结果为 Long 类型的表达式
Private Declare Auto Function MSBox Lib "user32.dll" Alias "MessageBox" (ByVal hWnd As Integer, ByVal txt As String, ByVal caption As String, ByVal Typ As Integer) As Integer
Private Declare Function VB_CreateOCRInstance Lib "CoCoOCR.dll" () As Long
Private Declare Sub VB_ReleaseOCRInstance Lib "CoCoOCR.dll" ()
Private Declare Function VB_Recognize Lib "CoCoOCR.dll" (ByVal filePath As String, ByVal result As String, ByVal len As Integer) As Integer
Private Declare Function VB_RecognizeEx Lib "CoCoOCR.dll" (ByVal filePath As String, ByVal result As String, ByVal len As Integer, ByVal type As Integer) As Integer
Private Declare Function VBRecognizeExEx Lib "CoCoOCR.dll" (ByVal filePath As String, ByVal result As String, ByVal len As Integer, ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer) As Integer
Const MB_ICONQUESTION As Integer = &H20
Const MB_YESNO As Integer = &H4
Const IDYES As Integer = 6
Const IDNO As Integer = 7
Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
' Stores the return value.
Dim RetVal As Integer
RetVal = MSBox(0, "Declare DLL Test", "Windows API MessageBox", MB_ICONQUESTION Or MB_YESNO)
' Check the return value.
If RetVal = IDYES Then
MsgBox("You chose Yes")
Else
MsgBox("You chose No")
End If
End Sub
Private Sub button1_Click(sender As Object, e As RoutedEventArgs) Handles button1.Click
Dim ret As Long
Dim retRc As Integer
ret = VB_CreateOCRInstance()
If ret <> 0 Then
Else
Dim result As String = Space$(1024)
Dim len As Integer = 1024
Dim path As String = "D:\VisualStudio\Document_VS2015\CoCoOCR\Release\IMG_200WBS.jpg"
retRc = VB_Recognize(path, result, len)
textBox.Text = result
End If
VB_ReleaseOCRInstance();
End Sub
Private Sub button2_Click(sender As Object, e As RoutedEventArgs) Handles button2.Click
End Sub
End Class
VB 如何调用 c++ DLL?的更多相关文章
- 【VB技巧】VB静态调用与动态调用dll详解
本文“[VB技巧]VB静态调用与动态调用dll详解”,来自:Nuclear'Atk 网络安全研究中心,本文地址:http://lcx.cc/?i=489,转载请注明作者及出处! [[请注意]]:在以下 ...
- VB.NET中的DLL编写和调用的最简单示例
DLL(动态链接库)是一个很有用的东西,在开发大项目的时候显得非常重要,因为多人合作开发时,可以给每个人分配一个任务,用DLL完成,最后组合起来,就不会出现互相冲突的问题.这里给出最简单的DLL编写与 ...
- 非托管C++通过C++/CLI包装调用C# DLL
项目中要给其它客户程序提供DLL做为接口,该项目是在.Net4.0平台下开发.终所周知.Net的各个版本之间存在着兼容性的问题,但是为了使用高版本运行平台的新特性,又不得不兼顾其它低版本平台客户程序的 ...
- [转]C#调用C++dll
本文转载至http://www.cnblogs.com/ysharp/archive/2012/05/25/2517803.html 在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问 ...
- C#时常需要调用C++DLL
在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问题,尤其是传递和返回字符串是,现总结一下,分享给大家: VC++中主要字符串类型为:LPSTR,LPCSTR, LPCTSTR, st ...
- vb6如何调用delphi DLL中的函数并返回字符串?
1,问题描述 最近发现vb6调用delphi DLL中的函数并返回字符串时出现问题,有时正常,有时出现?号,有时干脆导致VB程序退出 -- :: 将金额数字转化为可读的语音文字:1转化为1元 ???? ...
- c# 调用c++DLL方法及注意事项
引用命名空间 using System.Runtime.InteropServices 调用方法: 一.静态加载 用DllImprot方式来加载c++DLL.如下格式: //对应c++方法 //voi ...
- 在.net中调用Delphi dll的Pchar转换
Pchar是非托管代码,要在.net中调用Delphi dll中的功能,请使用MarshalAs属性告知.net调用PInvoke去转换.net中标准的string类型.如果Delphi dll是De ...
- Java调用第三方dll文件的使用方法 System.load()或System.loadLibrary()
Java调用第三方dll文件的使用方法 public class OtherAdapter { static { //System.loadLibrary("Connector") ...
随机推荐
- cmd 指令
dir 展示当前文件夹内的文件 mkdir 创建文件夹 c: 访问C盘 (d: f:) cd\ 返回主文件 cd .. 返回上一文件夹 cd test 打开文件夹 访问文件夹 rd 删除文件夹 ...
- Storm集群安装与部署
准备 1.三台虚拟机 192.168.1.128 Nimbus 192.168.1.131 Supervisor 192.168.1.132 Supervisor 2.JDK1.8 3.Zookeep ...
- 理解maven的核心概念
原文出处:http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html 好久没进行java方面的开发了,最近又完成了一个java相关的 ...
- java常用类--系统相关
java提供了System类和Runtime类来与程序的运行平台进行交互. System类 System类代表java程序的运行平台,程序不能创建这个类的对象,System类提供了一些类field和方 ...
- Java基础知识(一)
类与对象 1.对象:客观存在的一切事物称之为对象 类:具有相同属性和方法的对象的集合 2.类:属性,方法 3.修饰符: public protected 默认(不写) private 任何地方 ...
- 百度网盘不限速下载软件 Pan Download
百度网盘不限速下载软件 Pan Download Pan Download下载软件是一款电脑端的快速下载器软件,您可以通过Pan Download直接下载百度网盘中的资源,此款软件下载速度快,下载压缩 ...
- AdobeFlashBuilder还不如AdobeFlashProfessional写actionscript体验好
AdobeFlashBuilder还不如AdobeFlashProfessional写actionscript体验好. 这真是奇怪了.
- BZOJ 4008: [HNOI2015]亚瑟王 [DP 概率 !!!]
传送门 题意: $r$轮$n$张卡牌,每一轮依次考虑每张卡牌,$p_i$概率发动造成$d_i$伤害后结束本轮或者继续考虑下一张 每张卡牌发动过之后以后都会跳过 求$r$轮之后的期望伤害 看了一节课出题 ...
- POJ 1681 Painter's Problem [高斯消元XOR]
同上题 需要判断无解 需要求最小按几次,正确做法是枚举自由元的所有取值来遍历变量的所有取值取合法的最小值,然而听说数据太弱自由元全0就可以就水过去吧.... #include <iostream ...
- POJ 2007 Scrambled Polygon [凸包 极角排序]
Scrambled Polygon Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8636 Accepted: 4105 ...