Why might my GetRawData
declared function return a correct value when called from my VB.NET application, but return zero when called from my ASP.NET page?
The code is exactly the same except for class type difference (Form / Page) and calling event handler (Form1_Load, Page_Load).
Note: In the actual code, #DLL# and #RAWDATAFILE# are both absolute filenames to my DLL and raw data file respectively.
Note: The DLL file was not created by 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)