Excel VBAでiconvを使えるでしょうか?


わん  2005-06-30 11:54:49  No: 123156

ExcelのVBAでiconv.dllのiconv_open, iconv, iconv_closeを使おうと思い

Declare Function iconv_open Lib "iconv.dll" Alias "libiconv_open" _ (ByVal tocode As String, ByVal fromcode As String) As Integer

Sub test()
    Dim a As Integer
    a = iconv_open("aho", "aho")
End Sub

というようにして実行してみたのですが、「実行時エラー'49' DLLが正しく呼び出させません」というエラーが出てしまいます。

他の関数も同様にしてみたのですが、同じエラーが出てしまいます。

iconv.dllは以下のものを使用しています。

http://www.kaoriya.net/#LIBICONV

何分、dllを使うのは初めてに近く、正しく定義できているのかどうかも怪しいです。

よろしくご教授願います。


魔界の仮面弁士  2005-06-30 13:25:41  No: 123157

> iconv.dllは以下のものを使用しています。
# 以下、そのリンク先の内容を確認せずに回答しています。

> DLLが正しく呼び出させません
となると、DLL が stdCall になっていないのかも知れませんよ。

もしも呼び出し規約が cdecl になっていた場合は、VBA/VB6からの
利用はできません。(VB.NETならば cdecl でも stdCall でも呼べますが)


わん  2005-06-30 19:26:50  No: 123158

情報ありがとうございます。

> となると、DLL が stdCall になっていないのかも知れませんよ。

> もしも呼び出し規約が cdecl になっていた場合は、VBA/VB6からの
> 利用はできません。(VB.NETならば cdecl でも stdCall でも呼べますが

なるほど、そういうことがあるのですね。
確認してみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加