爲什麼我的GetRawData
聲明的函數在從我的VB.NET應用程序調用時返回正確的值,但從ASP.NET頁面調用時返回零?聲明的DLL函數的行爲不一致
除了類型差異(Form/Page)和調用事件處理函數(Form1_Load,Page_Load)之外,代碼完全相同。
注意:在實際代碼中,#DLL#和#RAWDATAFILE#都是我的DLL和原始數據文件的絕對文件名。
注意:該DLL文件不是由Visual Studio創建的。
Form1.vb的
Public Class Form1
Declare Auto Function GetRawData Lib "#DLL#" (ByVal filename() As Byte, _
ByVal byteArray() As Byte, _
ByVal length As Int32) As Int32
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim buffer(10485760) As Byte
Dim msg As String, length As Integer = 10485760
Dim filename As String = "#RAWDATAFILE#"
length = GetRawData(Encoding.Default.GetBytes(filename), buffer, length)
Default.aspx.vb
Partial Public Class _Default
Inherits System.Web.UI.Page
Declare Auto Function GetRawData Lib "#DLL#" (ByVal filename() As Byte, _
ByVal byteArray() As Byte, _
ByVal length As Int32) As Int32
Protected Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
Dim buffer(10485760) As Byte
Dim msg As String, length As Integer = 10485760
Dim filename As String = "#RAWDATAFILE#"
length = GetRawData(Encoding.Default.GetBytes(filename), buffer, length)
只是一個預感,但如果你打印出Encoding.Default.WebName - 它們在兩種環境下都是一樣的嗎? – 2010-05-21 17:19:04
是的,它們是一樣的。 – Steven 2010-05-21 17:31:04