关于用.Net平台开发SPMS_API开发接口里的PChar说明——转载

原创 2007年09月25日 21:48:00

SPInterface.dll

上行接收函数: GetCNGPDeliverSM

问题说明: 此开发包为Delphi6开发,其中用了PChar这种Vb和.Net不直接支持的数据类型,需要一定的转换.

下面为VB.Net 2005开发代码示例:

定义部份:

Imports System.Runtime.InteropServices

Private Declare Function GetCNGPDeliverSM Lib "SP_Interface.dll" ( _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sMsgID As String, _
   ByRef byMsgFormat As Byte, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sRecvTime As String, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sOrgAddr As String, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sDestAddr As String, _
   ByRef byMsgLen As Byte, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sMsgContent As String, _
   ByRef byProValue As Byte, _
   ByRef byIsReport As Byte, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sSrcMsgID As String, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sSubmitdate As String, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sDonedate As String, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef sStatus As String, _
   ByRef iDeliverAckResult As Int32, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef Link_ID As String, _
   <MarshalAs(UnmanagedType.VBByRefStr)> ByRef BeneficiaryID As String) As Int32

初台化各指针

Public Sub XX()

Dim Result As Int32
Dim sMsgID As New String(Chr(0), 10)
Dim byMsgFormat As Byte = 0
Dim sRecvTime As New String(Chr(0), 14)
Dim sOrgAddr As New String(Chr(0), 20)
Dim sDestAddr As New String(Chr(0), 20)
Dim byMsgLen As Byte = 0
Dim sMsgContent As New String(Chr(0), 254)
Dim byProValue As Byte = 0
Dim byIsReport As Byte = 0
Dim sSrcMsgID As New String(Chr(0), 20)
Dim sSubmitdate As New String(Chr(0), 10)
Dim sDonedate As New String(Chr(0), 10)
Dim sStatus As New String(Chr(0), 7)
Dim iDeliverAckResult As Byte = 0
Dim Link_ID As New String(Chr(0), 20)
Dim BeneficiaryID As New String(Chr(0), 21)

End Sub

详细说明:

在下行的时候虽说传入参数也有PChar类型,不过用String类型可以表示并系统可以识别,不需要我们自己去转换,其它类型的可按开发文档上的Byte和Int32类型表示

上行因为PChar是指针引用,象ByRef或Output这种按引用传值方式,所以需要托管代码到非托管代码的一个指针转换,那么可以使用UnmanagedType.VBByRefStr 进行"特性"说明这一转换,C#也一样,好象.Net1.1不支持这一项,我也没研究过

除了这一项之外还有就是必须分配内存空间,这里我用New String(Chr(0),100)表示,后面的100是字符长度,这个是定长.

 

关于用.Net平台开发SPMS_API开发接口(青牛软件 SPInterface.dll) 里的PChar说明

SPInterface.dll上行接收函数: GetCNGPDeliverSM问题说明: 此开发包为Delphi6开发,其中用了PChar这种Vb和.Net不直接支持的数据类型,需要一定的转换.下面为...
  • gxboy
  • gxboy
  • 2007年07月27日 14:55
  • 2024

对java与.net平台进行的分析和看法

对java与.net平台进行的分析和看法一、简介 JAVA与.NET继续发展下去,可能的两种结果:其中的一种退出竞争或是两种共存,而共存的可能性更大。JAVA得以生存的原因在于它的时间优势:它已经发展...
  • parrylau
  • parrylau
  • 2008年01月03日 18:33
  • 1623

.Net平台开发的技术规范与实践精华总结

.Net平台开发的技术规范与实践精华总结以下是本人对.Net平台开发实践的一些点滴总结。这里的技术规范主要是开发过程的代码规范、数据库设计规范、Com和.Net互操作规范;实践精华是对技术实践过程中的...
  • gongfs
  • gongfs
  • 2007年02月09日 12:50
  • 22222

DotNet平台主要开发技术总结与经验 .

自微软2000年发布.Net战略以来有10年多,世界上有数百万的程序员在.Net Framework上构建了自己的应用产品。从2002年发布.Net1.0开始,先后发布了.Net1.0、1.1、2.0...
  • dongqiang51
  • dongqiang51
  • 2012年07月28日 16:05
  • 1619

.NET编译平台已宣布开源,.net生态圈将引来一场革命

多年来,微软一直在为开源项目做贡献,试图拉近与青睐开源代码的开发者们的距离。本周,软件巨头微软终于做出了开源大动作。.NET创立者Anders Hejlsberg在今天的微软Build大会上,亲自宣布...
  • romantichjwhjwhjw
  • romantichjwhjwhjw
  • 2014年11月14日 00:37
  • 1083

[转]ASP .Net C# 下 Word开发资料

本文转自http://www.cnblogs.com/light169/archive/2006/12/28/605685.html原文如下:===========================...
  • freeliver54
  • freeliver54
  • 2007年07月20日 15:59
  • 452

.NET框架开发平台体系架构

        很多人或许正在用微软的.NET作为开发平台来开发软件,.NET平台相对来说是个比较复杂的集成开发环境,功能很全,也很方便,对于熟悉.NET平台的开发人员来说,这是一个功能强大的开发工具...
  • Sodier
  • Sodier
  • 2005年08月09日 22:20
  • 3069

.NET平台常用的开发组件

工欲善其事,必先利其器。学习.NET也10年有余,其优雅的编程风格,高效率的开发速度,极度简单的可扩展性,足够强大开发类库,较小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开...
  • diligentcat
  • diligentcat
  • 2017年02月24日 09:20
  • 2037

使用.NET语言开发Silverlight应用程序入门(一):了解项目结构

从今天开始,让我们系统的了解一下如何用.NET语言来开发Silverlight的应用程序。这个入门系列会包含用.NET语言(这里主要使用C#语言)开发Silverlight应用程序的各个方面,如UI控...
  • SilverlightShanghai
  • SilverlightShanghai
  • 2007年09月23日 12:40
  • 7812

开发平台的优势在哪?

今天聊天,谈到了几个问题,也很值得思考: 一个是开发平台的优势在哪? 一个是报表产品的功能复杂度问题? 一个是谁需要开发平台,谁使用开发平台? 一个是系统集成,组件化与开发平台间的关系和优越?...
  • hunkcai
  • hunkcai
  • 2012年01月18日 14:41
  • 3323
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于用.Net平台开发SPMS_API开发接口里的PChar说明——转载
举报原因:
原因补充:

(最多只允许输入30个字)