アクセスバイオレーションが出てしまいます。 – プログラミング – Home

アクセスバイオレーションが出てしまいま...
 
通知
すべてクリア

[解決済] アクセスバイオレーションが出てしまいます。


エイト
 エイト
(@エイト)
ゲスト
結合: 19年前
投稿: 5
Topic starter  

VB6で、VC6で作成したDLLを呼び出しているのですが、アクセスバイオレーションが
発生してしまいます。開発経験が乏しいため、アクセスバイオレーションが発生した
場合でどこから調査したらいいのか、わからずこまっています。
何か良いアドバイスがあればお願いします。
<開発環境>
OS:Windows XP SP2
VB6,VC6 SP6
office 2003

アクセスバイオレーションの内容は、
VisualC++
ハンドルされていない例外は、VB6.EXE(NTDLL.DLL)にあります。
  0xC0000005:Access Violation

○VBのDLL呼出宣言
Declare Function readRegister Lib UniDesUtl ( _
ByVal rec As Long, _
ByRef retstr As Byte _
) As Long

○変数宣言
Private Type REGISTER_REC2
b(7000) As Byte
End Type
Dim regi2 As REGISTER_REC2

○ソース
Dim fnoOut As Integer
Dim i As Long
Dim j As Long
Dim k As Long
Dim progress As Double

On Error GoTo ERROR1
LblProgress.ForeColor = 0
LblProgress.Caption = "
DoEvents

fnoOut = FreeFile()
Open OutFname For Output As #fnoOut
ProgressBar1.Visible = True
DoEvents

If DataSel = 1 Then
For i = 1 To RegiMax
⇒ アクセスバイオレーション
    k = readRegister(i, regi2.b(0))
~~~~~~~~~~~~~~~~~~~~~~~~~~~
If PatientData.densan >= FromDate And PatientData.densan <=
ToDate Then outdata (fnoOut): j = j + 1


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

これだけのコードではちょっとわからないと思うのですが。

VCのDLLのソース(最低でも関数宣言のところ)が示されないと。。。

ちなみにVCからそのDLLは普通に呼べるのでしょうか?


返信引用
エイト
 エイト
(@エイト)
ゲスト
結合: 19年前
投稿: 5
Topic starter  

Blueさん
 どうもありがとうございます。
 ご迷惑をお掛けしました。
 VBのプログラム上にて、DLL参照時の引数にてバグがありました。
 単純な間違いでした。
 直接VBからVCのDLLを呼び出すことが出来ませんが、VBから
 DeclearにてDLL内の関数を呼び出しています。

 使用しているDLLは、市販されているものを使用してVCで構築したもの
 をVBにて呼び出しています。

 お手数お掛けしました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました