VB与VC通信初探(二)

陪着幸福去旅行

陪着幸福去旅行

2016-02-19 12:55

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享VB与VC通信初探(二)教程,希望对大家能有一点小小的帮助。

     在通过DLL实现VB与VC的过程中,一般的简单的通信过程很容易建立。在《VB与VC通信初探(一)》中,我已经把基本的通信过程给描述了一下,但是,有些时候,事件的发展并不总是一帆风顺的,当我们以为可以轻松的实现VB与VC的通信的时候,就经常发生这样的情况,还是先看看例子再说。 

VC中的程序:

extern "C" _declspec(dllexport)  bool  ReadString(LPCSTR lpString)

  {

         char str[]="Hello World!";

         if(strcmp(lpString,str)==0)

              return true ;

         else

              return false ;

}

VB中的程序:

Private Declare Function ReadString Lib "commication.dll" (ByVal send As String) as Boolean

……………………

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

Dim result As Boolean

Dim send As String 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

send =”Hello,World!”

result = ReadString(send) 

If result Then

 MsgBox "The return value is 'true'"

Else

 MsgBox "The return value is 'false'"

End If 

        可以上机运行这个程序,一样的,实现了通信的功能,但是这里有几个地方是应该引起我们注意的,首先就是在VB中声明传递的字符串参数的时候,按照常规的理解,好像应该是传递地址才对,但是这里使用的方法是ByVal,为什么?原因比较复杂,但是可以简单的来分析一下,在VB中,使用的字符串实际上是BSTR类型的,它是由自动化(以前被称为OLE Automation)定义的数据类型。一个BSTR由头部和字符串组成,头部包含了字符串的长度信息,字符串中可以包含嵌入的null值。大部分的BSTR是 Unicode的,即每个字符需要两个字节。BSTR通常以两字节的两个null字符结束。下图表示 了一个BSTR类型的字符串。

  (前缀)aTest

展开更多 50%)
分享

猜你喜欢

VB与VC通信初探(二)

编程语言 网络编程
VB与VC通信初探(二)

VB与VC通信初探(一)

编程语言 网络编程
VB与VC通信初探(一)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC命名管道通信的实现

编程语言 网络编程
VC命名管道通信的实现

初探 PHP5 (二)

PHP
初探 PHP5 (二)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

jsp与ejb通信

Java JAVA基础
jsp与ejb通信

VB与VC混合编程中处理消息的方法

编程语言 网络编程
VB与VC混合编程中处理消息的方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

复制数据库(1)--网络数据库的复制和同步(5)

复制数据库(1)--网络数据库的复制和同步(5)

数据访问控制--多客户环境下VB数据库编程之(2)

数据访问控制--多客户环境下VB数据库编程之(2)
下拉加载更多内容 ↓