当前位置: 首页 > news >正文

住房和成乡建设部网站山东网站建设优化技术

住房和成乡建设部网站,山东网站建设优化技术,做网站的人还能做什么,网站做好后还需要维护吗VB6写ActiveX COM组件比较方便#xff0c;不仅PowerBASIC与VB6兼容性好#xff0c;Delphi7与VB6兼容性也不错#xff0c;但二者与FreeBASIC兼容性在字符串处理上差距比较大#xff0c;FreeBASIC是C化的语言#xff0c;可直接使用C指令。下面还是以实现MKI/CVI, MKL/CVL, M… VB6写ActiveX COM组件比较方便不仅PowerBASIC与VB6兼容性好Delphi7与VB6兼容性也不错但二者与FreeBASIC兼容性在字符串处理上差距比较大FreeBASIC是C化的语言可直接使用C指令。下面还是以实现MKI/CVI, MKL/CVL, MKS/CVS, MKD/CVD, CRC16为出发点先说说VB6与FreeBASIC的字符串交互然后VB6做成ActiveX与Delphi7交互就比较方便了。FreeBASIC和PowerBASIC一样拥有保留字MKI/CVI, MKL/CVL, MKS/CVS, MKD/CVD, 同时还拥有 lang -QB 后几乎QUICK BASIC的全部指令可用。 FreeBASIC写DLL入口出口模板做好的(是个形式需要没实际内容)下载勇芳的FreeBASIC免安装直接运行选用DLL模板然后写自己的函数。下面是实现 MKI 的代码在FreeBASIC里即可用MKI还有MKShort可用。 FUNCTION myMKI (ByVal Param1 AS Short) AS BSTR EXPORTDIM I AS ShortDIM TString AS STRINGI 0 : TString code goes hereFOR I 2 TO 1 STEP -1TStringTStringRIGHT((0LTRIM(HEX(ASC(MID(MKShort(Param1),I,1))))),2)NEXT IFUNCTION StringToBStr(TString) END FUNCTION Function里 ByVal Param1 as Short可以接收VB6的Integeras BSTR是VB6用的字符串格式CSDN的知识告诉我们它是宽字符并且字符串前面有4个字节记录了字符串长度而FreeBASIC里用的字符串是C格式的接收了VB6整数直接处理没问题但返回字符串给VB6不能直接返回缺少四个字节的东西。StringToBSTR是为转换做的函数函数里没做什么处理而是用C的oleauto.h里的SysAllocString完成转换的前面说了FreeBASIC直接可用C的命令。 再看看MKS也是用的MKS函数也同样转换成BSTR返回给VB6。 FUNCTION myMKS (BYVAL Param1 AS SINGLE) As BSTR EXPORTDIM I AS INTEGERDIM TString AS STRINGI0: TString code goes hereFOR I 4 TO 1 STEP -1TStringTStringRIGHT((0LTRIM(HEX(ASC(MID(MKS(1.0*Param1),I,1))))),2)NEXT IFUNCTION StringtoBStr(TString) END FUNCTION 如果Function里接收VB6字符串处理后返回给VB6字符串不仅要StringtoBSTR转换还要对接收的字符串进行BSTRtoString转换看下面的代码。 FUNCTION myINSTRU (BYVAL Param1 AS BStr) As BSTR EXPORTDIM LParam1 AS STRINGDIM RETURNSTR AS STRINGRETURNSTR UNKNOWNLParam1 BStrToString(Param1)SELECT CASE LParam1CASE VERSIONRETURNSTR VERSION 1.00 9AUG2023CASE AUTHORRETURNSTR MongnewerEND SELECTFUNCTION StringToBstr(RETURNSTR) END FUNCTION BstrTostring的实现稍复杂一些代码如下 Function BStrToString(nBStr As BStr) As String 将VB里的字符串转换为FB里使用的字符串Dim L As Long Peek(Long,Cast(UInteger,nBStr) -4)Dim ss As String String(L,0)memcpy StrPtr(ss),nBStr,LFunction ss End Function 取得VB6字符串的地址减4然后直接Peek从内存中读出来传送的字符串长度再造一个这个长度的本地string再把收到的BSTR的字符考贝到新建的字符之中这样等长度字符就有了。字符串转换在FreeBASIC里勇芳做了细致的工作更多更细代码下载开发环境都带齐了。 如果VB6传送前知道字符串长度或是通过另外的参数同时传送长度值那处理就更方便了。FreeBASIC可以在函数中定义 ByRef Param1 AS BStr VB6那边也是ByRef然后呢宽字符直接考贝。Dim As String ss FreeBASIC OneStrCpyW(Param1, Cast(WString Ptr, StrPtr(ss))) 在VB6里看到字符串会被FreeBASIC改写了。 传送时FreeBASIC有Byref和Byval 类型 ptr指针可用VB6有Byref和Varptr可用Delphi有 Pchar等P指针可用传送地址改写地址数据进行交互还是比较方便的长度问题最简便的方法是传送时用另外的参数传送长度值。 VB6写ActiveX与上篇《Delphi7通过VB6之COM对象调用PowerBASIC写的DLL功能》博文类似Delphi7通过VB6之COM对象调用PowerBASIC写的DLL功能_Mongnewer的博客-CSDN博客 只是在函数声明时稍做改变 Private Declare Function myMKI Lib MBFIEEE32FB.dll Alias MYMKI4 (ByVal a As Integer) As String Private Declare Function myCVI Lib MBFIEEE32FB.dll Alias MYCVI4 (ByVal b As String) As Integer Private Declare Function myMKL Lib MBFIEEE32FB.dll Alias MYMKL4 (ByVal a As Long) As String Private Declare Function myCVL Lib MBFIEEE32FB.dll Alias MYCVL4 (ByVal b As String) As Long Private Declare Function myMKS Lib MBFIEEE32FB.dll Alias MYMKS4 (ByVal a As Single) As String Private Declare Function myCVS Lib MBFIEEE32FB.dll Alias MYCVS4 (ByVal b As String) As Single Private Declare Function myMKD Lib MBFIEEE32FB.dll Alias MYMKD8 (ByVal a As Double) As String Private Declare Function myCVD Lib MBFIEEE32FB.dll Alias MYCVD4 (ByVal b As String) As Double Private Declare Function myCRC16 Lib MBFIEEE32FB.dll Alias MYCRC164 (ByVal a As String) As String Private Declare Function myINSTRU Lib MBFIEEE32FB.dll Alias MYINSTRU4 (ByVal a As String) As String 函数名不变Lib选的DLL文件变了然后有个 Alias 名FreeBASIC编译器会为每个函数加上别名如果拿不准具体别外可在终端窗口中 dumpbin /exports mbfieee32fb.dll 库中的别名就都列出来了。 dumpbin 是装 studio 平台自带的工具也能单独找到。 因为函数名不变所以Delphi7调用时除引用的COM不同其它可以保持不变。 VB6做COM可以粘接PowerBASIC也可以粘接FreeBASIC还可以在一个COM下同时粘接 PowerBASIC和FreeBASIC写的DLL当然也可以不用COM直连互通。这些东西都挺古老了就不赘述了。
http://www.hkea.cn/news/14492656/

相关文章:

  • 基于php的网站开发设计湖州市网站建设公司
  • 石家庄定制建站百度广告怎么推广
  • 影响网站权重的因素免费ppt模板下载熊猫
  • 怎么申请网站空间域名花店网页制作素材
  • 网站开发以图片为背景简历网站后怎样才能被谷歌 百度收录吗
  • 做网站主机选择遵义制作网站
  • 顺的做网站便宜吗成都高端室内设计公司
  • 泰安网站建设最好免费做那个的视频网站
  • 网站建设的内容是什么百度竞价点击价格
  • 重庆网站设计公司排行服装定制软件
  • 做网站主流用什么语言企业管理专业主要课程
  • 竞价网网站结构怎么优化
  • wordpress写网站教程南京雨花台区做网站
  • 营销型网站建设方面的书石家庄建设学校
  • 做网站什么主题好做网站是干嘛
  • 大货车找事做下载怎么网站东营网站建设规划书
  • 怎么建设一个外国网站cd-wordpress
  • 长沙网站建设企业黄金网站大全免费
  • 重庆网站建设培训学校目前最好的oa系统
  • 婚宴网站源码营销网站建设文章
  • 青浦php网站开发培训wordpress 解释符号
  • 关于茶网站模板品牌网站品牌理念老旧的后果
  • 博敏 网站开发租用云服务器一年大概的费用
  • dede网站迁移wordpress 翻页重复
  • 怎样做网站导航栏公司简介电子版宣传册模板
  • 商城的网站统计如何做去哪网网站设计风格
  • linux版网站开发做本地信息网站要注册什么类型公司
  • 手机网站要素ppt做的好的网站有哪些内容
  • 西安专业承接网站搭建模板免费做网站的优缺点
  • 做网站的算什么行业男女做爰视频网站