如何将PowerBASIC类型转换为VB6类型?
这些类型来自的演示,并用PowerBASIC编写。我正在尝试将它们转换为VB6(还发现了如何)如何将PowerBASIC类型转换为VB6类型?,vb6,types,Vb6,Types,这些类型来自的演示,并用PowerBASIC编写。我正在尝试将它们转换为VB6(还发现了如何) 我的问题是理解如何获取存储在ASCIIZ PTR、FCGX\u STREAM PTR和DWORD PTR项目中的信息。我已经多年没有使用VB6了,所以请带着健康的怀疑态度接受下面的信息。但如果我今天面对这个问题,我会从这里开始 因为您使用的是VB6,所以我假设这是32位代码 PTR类型似乎是指向由其他对象分配的内存块的指针。要访问该内存,需要取消对指针的引用 所有PTR值都是32位的,因此,当您为此创
我的问题是理解如何获取存储在
ASCIIZ PTR
、FCGX\u STREAM PTR
和DWORD PTR
项目中的信息。我已经多年没有使用VB6了,所以请带着健康的怀疑态度接受下面的信息。但如果我今天面对这个问题,我会从这里开始
因为您使用的是VB6,所以我假设这是32位代码
PTR类型似乎是指向由其他对象分配的内存块的指针。要访问该内存,需要取消对指针的引用
所有PTR值都是32位的,因此,当您为此创建VB6结构时,请放置DWORD或LONG或VB6 32位值的任何内容
要取消对指针的引用,需要调用WindowsAPI函数RtlMoveMemory,如下所述。RtlMoveMemory的所有三个参数都是32位值。我已经很多年没有使用VB6了,所以请带着健康的怀疑态度接受下面的信息。但如果我今天面对这个问题,我会从这里开始 因为您使用的是VB6,所以我假设这是32位代码 PTR类型似乎是指向由其他对象分配的内存块的指针。要访问该内存,需要取消对指针的引用 所有PTR值都是32位的,因此,当您为此创建VB6结构时,请放置DWORD或LONG或VB6 32位值的任何内容 要取消对指针的引用,需要调用WindowsAPI函数RtlMoveMemory,如下所述。RtlMoveMemory的所有三个参数都是32位值。
- 看起来不错。我还建议看一下如何编写从VB调用的C DLL。最初与VB5一起发布,但仍与VB6相关。说明了包装的结构等
- 编辑。还值得一看:VB6大师Karl Peterson如何处理VB6中包含指针的结构
- 看起来不错。我还建议看一下如何编写从VB调用的C DLL。最初与VB5一起发布,但仍与VB6相关。说明了包装的结构等
- 编辑。还值得一看:VB6大师Karl Peterson如何处理VB6中包含指针的结构
' Structures
TYPE FCGX_STREAM
pData AS DWORD ' Pointer to the first byte of data
LenStored AS DWORD ' Bytes Total data stored - up to 4.2GB
Capacity AS DWORD ' Bytes Total available - up to 4.2GB
CurPos AS DWORD ' Current Position within the buffer of the next byte to read, as an offset from pData
Reserved AS STRING*12 ' Opaque Variables
END TYPE ' 28 bytes
TYPE FCGX_REQUEST
Version AS LONG ' Dll Version Number * 1000 = %FCGI_VERSION
ReqCount AS LONG ' Request Counter
Role AS LONG ' FastCGI Role
ConnFlags AS LONG ' Connection flags - zero = application closes connection after responding
ReqMethod AS LONG ' Request HTTP Method - Code 1 - 8
ContLen AS LONG ' CONTENT_LENGTH - Length of POST data sent (in the pInStream Data String)
pzQuery AS ASCIIZ PTR ' Pointer to ASCIIZ (Null Terminated) QUERY_STRING (Values Only) - Always a valid pointer
nParam AS LONG ' Number of Request Params in the array
envp AS DWORD PTR ' Pointer to Array of Request Parameters
pIn AS FCGX_STREAM PTR ' Pointer to a String Builder object
pOut AS FCGX_STREAM PTR ' Pointer to a String Builder object
pErr AS FCGX_STREAM PTR ' Pointer to a String Builder object
pzLastErr AS ASCIIZ PTR ' Pointer to ASCIIZ String containing Last Error description
Reserved AS STRING*108 ' Opaque Variables
END TYPE ' 160 bytes