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") ...
随机推荐
- CSS深入理解学习笔记之absolute
1.absolute和float 拥有相同的特性表现: ①包裹性(容器应用之后,可以包裹里面的内容): <!doctype html> <html> <head> ...
- Python--socketserve源码分析(一)
class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass 实现原理: s =socketserver.ThreadingTCPServer(参 ...
- U盘安装CentOS 7问题解决
1 使用U盘安装最新版Centos时报错(CentOS-7-x86_64-DVD-1503-01): 错误提示:"Warning:could not boot;Warning: /dev/r ...
- Servlet--ServletRequest接口,ServletResponse接口
ServletRequest接口 定义 public interface ServletRequest 定义一个 Servlet 引擎产生的对象,通过这个对象, Servlet 可以获得客户端请求的数 ...
- php 通过curl获取远程数据,返回的是一个数组型的字符串,高手帮忙如何将这个数组类型的字符串变成数组。
如 Array([0] => Array([0] => Array([kd_status] => 已签收[kd_time] => 2014-04-30 18:59:43 [b] ...
- unix网络编程第2版(卷1)_第6章_同步_异步
第6章 I/O复用:select和poll函数 6.1概述 在5.12节中,我们看到TCP客户同时处理两个输入:标准输入和TCP套接口.我们遇到的问题是客户阻塞于(标准输入上的)fgets调用,而服务 ...
- C为变量提供了5中存储模型(类)
- CSS的背景属性和边框属性
CSS的背景属性: background 简写属性,作用是将背景属性设置在一个声明中 background-attachment 背景图像是否固定或者随着页面的其余部分滚动 background-co ...
- windows单节点下安装es集群
linux下的es的tar包,拖到windows下,配置后,启动bin目录下的bat文件,也是可以正常运行的. 从linux下拷的tar包,需要修改虚拟机的内存elasticsearch.in.bat ...
- [dsu on tree]【学习笔记】
十几天前看到zyf2000发过关于这个的题目的Blog, 今天终于去学习了一下 Codeforces原文链接 dsu on tree 简介 我也不清楚dsu是什么的英文缩写... 就像是树上的启发式合 ...