用VB建立了一个DLL,代码如下:
模块:basPub.bas
Option ExplicitPublic Type SECURITY_ATTRIBUTES
          nLength   As Long
          lpSecurityDescriptor   As Long
          bInheritHandle   As Long
End TypePublic Const FILE_MAP_WRITE = &H2
Public Const PAGE_READWRITE = &H4
Public Const MEMPAGE = &HFFFFFFFF
Public Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function MapViewOfFile Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long
Public Declare Function UnmapViewOfFile Lib "kernel32" (lpBaseAddress As Any) As Long
Public Declare Function OpenFileMapping Lib "kernel32" Alias "OpenFileMappingA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long
Public Declare Function GetLastError Lib "kernel32" () As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long类:clsFileTest
Option ExplicitDim fMapHandle    As Long
Dim pFileMap      As LongPrivate Sub Class_Initialize()  Dim TemSa     As SECURITY_ATTRIBUTES
  Dim TemLng    As Long
  
  TemSa.bInheritHandle = 1
  TemSa.lpSecurityDescriptor = 0
  TemSa.nLength = Len(TemSa)  fMapHandle = CreateFileMapping(MEMPAGE, TemSa, PAGE_READWRITE, 0, 128, "CQSL_MapFile" & "map")
  If fMapHandle = -1 Then
     MsgBox "文件MAP失败!"
     Exit Sub
  End If
  pFileMap = MapViewOfFile(fMapHandle, FILE_MAP_WRITE, 0, 0, 0)
  
  MsgBox fMapHandle
  MsgBox pFileMap
  
  TemLng = GetLastError
  If TemLng <> 0 Then
     MsgBox TemLng
  End IfEnd SubPrivate Sub Class_Terminate()  '释放对象
  If pFileMap <> 0 Then
     UnmapViewOfFile pFileMap
  End If  If fMapHandle <> 0 Then
     CloseHandle fMapHandle
  End IfEnd SubPublic Function SetOne(ByVal WhichData As Long) As Long  CopyMemory pFileMap, WhichData, 4End FunctionPublic Function GetOne() As Long  Dim TemLng   As Long  CopyMemory TemLng, pFileMap, 4
  GetOne = TemLngEnd Function建立测试程序1:
Option Explicit
  
Dim TemF   As clsFileTestPrivate Sub Command1_Click()  
  TemF.SetOne Val(Text1.Text)End SubPrivate Sub Command2_Click()  Text2.Text = TemF.GetOneEnd SubPrivate Sub Form_Load()  Set TemF = New clsFileTestEnd Sub建立测试程序2:
Option Explicit
  
Dim TemF   As clsFileTestPrivate Sub Command1_Click()  
  TemF.SetOne Val(Text1.Text)End SubPrivate Sub Command2_Click()  Text2.Text = TemF.GetOneEnd SubPrivate Sub Form_Load()  Set TemF = New clsFileTestEnd Sub在任意测试程序按Command1后,再在两个测试程序中按按钮2,结果得到的数据不一样,请问是哪里的问题呢?