• 締切済み

Visual Basic.NETのエラー("オブジェクト参照がオブジェクト インスタンスに設定されていません。")について

DLLを読み込むプログラムで、以下のように宣言した関数"VCread_wave_file"を呼び出そうとすると、 "オブジェクト参照がオブジェクト インスタンスに設定されていません。" というエラーが出てしまうのですが、なぜなのでしょうか? プログラムは以下のようになっています。 Public Class Form1 Inherits System.Windows.Forms.Form Dim status As Integer Dim wavelength As Long Dim samplf As Double Private Declare Function VCread_wave_file Lib "Vcon.dll" (ByVal FileName As String, ByVal tmpFilename As String, ByVal wavelength As Long, ByVal samplingFrequency As Double) As Integer (中略) Private Sub ChangeStartButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChangeStartButton.Click status = VCread_wave_file("rectmp.wav", "rectmp.raw", wavelength, samplf) Label4.Text = status End Sub よろしくお願いいたします。

みんなの回答

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

そのDLLは知らないのですが、アンマネージならまずその型は合っているかどうかの確認を。 VB.NETではLongは64bit、Integerは32bitに変更されていますので、VB6.0でのLongを意味しているならVB.NETではIntegerです。IntegerならShortになります。

matchan
質問者

お礼

どうもありがとうございました。 整数データの変更については全く知らなかったので、とても助かりました!

関連するQ&A