Top > OOobbs3 > 94

OOobbs3/94 Edit

  • サマリ: DLL呼び出し
  • 環境: Basic
  • 状態: 解決
  • 投稿者: セルダン?
  • 投稿日: 2012-06-05 (火) 16:10:22

質問 Edit

以下のプログラムで、自作のCのDLLを呼び出していますが、 「アクションは支援されません。無効なプロシージャーの呼び出し」 というエラーが発生してしまいます。

対処方法をご教示お願いいたします。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
REM  *****  BASIC  *****
 
Declare Function JoConvTruePath Lib "officeoxt20.dll" Alias "ConvTruePath" ( ByRef strTruePath As String, ByVal nOutSize As Long, ByRef strPath As String ) As Integer        
 
Sub Main
    'システムパスを取得
    Dim iSize            As Long
    Dim iRet            As Long
    Dim strBufPath    As String * 256
    Dim strRealPath    As String * 256
    iSize            = 256
    strBufPath    = "C:\Program Files\Java"
    iRet = JoConvTruePath( strRealPath , iSize,  strBufPath)    
End Sub

回答 Edit

  • 今日も感謝でついてる♪ 自己解決しました。
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
REM  *****  BASIC  *****
 
Declare Function JoConvTruePath Lib "officeoxt20.dll" Alias "ConvTruePath" ( ByRef strTruePath As String, ByVal nOutSize As Long, ByRef strPath As String ) As Integer        
 
Sub Main
    'システムパスを取得
    Dim iSize            As Long
    Dim iRet            As Long
    Dim strBufPath    As String * 256
    Dim strRealPath    As String * 256
    iSize            = 256
    strBufPath    = "C:\Program Files\Java"
    strRealPath = String(iSize," ")  ← この行を追加したらエラーはなくなりました。
    iRet = JoConvTruePath( strRealPath , iSize,  strBufPath)    
End Sub

でもなぜ?と言う感じです。 -- セルダン 2012-06-06 (水) 15:57:46

  • バッファーを用意しておかないとエラーになるタイプのようですねぇ。 -- はにゃ? 2012-06-07 (Thu) 22:11:15
  • Dim strRealPath As String * 256でバッファーは確保されないのですか? -- セルダン 2012-06-08 (金) 11:18:36
  • それらしき部分のコードをチラッと見ると・・・、パーサがパースして SbiCodeGen::Gen に渡されているところまで見ましたが・・・。後はご自分でどうぞ。Basic の実装にはもう興味がありませんので、API は Python から使いますが。OOo Basic は PyPy などで実装しなおせばいいんじゃないかと最近は思っています。 -- はにゃ? 2012-06-08 (金) 21:41:41

感想,コメント,メモ Edit



Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes