Почему моя объявленная GetRawData
функция может возвращать правильное значение при вызове из моего приложения VB.NET, но возвращать ноль при вызове из моей страницы ASP.NET?
Код точно такой же, за исключением разницы типов классов (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)