VB与VC通信初探(二)

2016-02-19 12:55 2 1 收藏

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

【 tulaoshi.com - 编程语言 】

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

VC中的程序:

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

  {

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

         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

……………………

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

Dim result As Boolean

Dim send As String 

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

来源:https://www.tulaoshi.com/n/20160219/1602464.html

延伸阅读
标签: Web开发
时间过的真快! 我们接着昨天的讲. 今天我们来介绍一下DWMX中的面板. MX的面板主要分为三大类.(Design,Code,Application) 分别适合网页设计师,手写代码者,和应用程序开发者使用.当然你也可以根据你自己的喜好来分配面板布局,并且DWMX面板继承了以前DW的面板属性.同样方便拆除和拼接. 1.Design --设计类 这里包括Css Styles, Html Styles,...
下面是Winsock的DataArrival事件中的代码。该代码的绝大部分是注释以向你解释程序所做的每一步。如果你觉得闷的话就跳过不看就是了。 PrivateSubWinsock1_DataArrival(ByValbytesTotalAsLong) DimstrDataAsString StaticintMessagesAsInteger'要下载的消息数(也就是邮件数) StaticintCurrentMessageAsInte...
VisualBasic以友好易学的可视化开发环境闻名于世,成为人们学习计算机编程的首选语言。目前,全世界大概有300多万人使用着VisualBasic语言。如果您想在这茫茫众生中出类拔萃,那么您就不得不学习API(ApplicationProgramlnterface,即Windows的应用程序编程接口)编程。不懂API,那可成不了高手。 第一节:API基础 API说到底就是一系列的...
作为一个VB爱好者,一个人在黑暗中摸索真是太累了。现将我摸索的一些心得贡献给大家,希望起抛砖引玉的作用(我用的是VISUALBASIC50中文版)。 1.问题:有一程序含有两个Form,其中Form2的Picture属性为一张BMP位图,而以下是Form1显示Form2的程序: Form2Show '延迟2秒 Time1=Timer WhileTimer-Time12 Wend ...
当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的大型应用软件无一不是多线程多任务处理...

经验教程

706

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部