希望这可以帮助。在检索答案之前,这一切都对我有用。或许你能弄清楚这位老人对 C 的东西有什么不知道的地方。祝你好运
导入 System.Runtime.InteropServices
模块模块1
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="SetInSystem", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function SetInSystem(ByVal InValue As Integer) As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="SetInDatum", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function setindatum(ByVal InValue As Int16) As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="SetOutDatum", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function SetOutDatum(ByVal InValue As Int32) As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="SetOutSystem", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function SetOutSystem(ByVal InValue As Int32) As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="Corpscon_initialize", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function Corpscon_initialize() As Double
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="GetXOut", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function GetXOut() As Double
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="SetOutZone", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function SetOutZone(ByVal InValue As Int32) As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="SetXIn", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function SetXIn(ByVal InValue As Double) As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="SetYIn", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function SetYIn(ByVal InValue As Double) As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="corpscon_initialize_convert", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function corpscon_initialize_convert() As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="SetOutUnits", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function SetOutUnits(ByVal InValue As Int32) As Integer
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
<DllImport("c:\Develop\CorpsCon\corpscon_v6.dll", EntryPoint:="GetYOut", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)>
Public Function GetYOut() As Double
' Leave function empty - DllImport attribute forces calls
' to Corpsconconfig to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
Public Sub convertDegreestoMeters(ByVal inx As Double, ByVal iny As Double, ByRef outx As Double, ByRef outy As Double)
Dim RetVal As Integer
RetVal = SetInSystem(1)
RetVal = setindatum(1983)
RetVal = SetOutSystem(2)
RetVal = SetOutDatum(1983)
RetVal = setoutzone(2301)
RetVal = setoutUnits(3) '1=US Servey Foot, 2=International Foor,3=Meters
RetVal = corpscon_initialize_convert()
RetVal = SetYIn(iny)
RetVal = SetXIn(inx)
Dim script As String
RetVal = corpscon_initialize_convert()
Dim outdbl As Double
outdbl = GetXOut()
script = "<script language=JavaScript>window.alert('" & outdbl & "'); </script>"
'ClientScript.RegisterStartupScript(Me.GetType, "tab3", script)
outx = outdbl
outdbl = GetYOut()
script = "<script language=JavaScript>window.alert('" & outdbl & "'); </script>"
'ClientScript.RegisterStartupScript(Me.GetType, "tab4", script)
outy = outdbl
End Sub
Sub Main()
Dim outx As Double = 0
Dim outy As Double = 0
Call convertDegreestoMeters(CDbl(88.5555), CDbl(27.5555), outx, outy)
'Results SHOULD BE Outx=
End Sub
端模块