舞鳴BBSテスト版 注:書き込んだ内容が勝手に変換される場合があります(笑)
新規の話題を投稿すりゅトップページに戻りゅ表掲示板に行きゅ

Back to normal view.

warning

投稿者:あちゃいん 投稿日:2005年06月08日 01時21分03秒

ちょいと見てみましたにゃ.

>./UCdomap.c:950: warning: passing arg 2 of `libiconv' from incompatible pointer type

 rc = iconv(cd, &pin, &inleft, &pout, &outleft);

このpinの部分が[char **]型であるのに対して,iconv.hでの定義は

 ... iconv (iconv_t cd, const char* * inbuf ...

と[const char **]型を要求しているので,warningが出ますにゃ.
でもこのままで問題にゃいにゃい.どうしてもwarningを止めたいにゃらば

 rc = iconv(cd, (const char**)&pin, &inleft, &pout, &outleft);

とpinをキャストしてあげればOKだと思いますにゃ.
(warningは止まりますが根本的にゃ解決ではありませんから気休めだにゃ〜)

で,実際の動作エラーのほうにゃんだけどにゃ,ICONV.DLLの中でエラーしているのは
popuplogから間違いにゃいとして,そうするとiconv()の前の行の

 cd = iconv_open(LYCharSet_UC[charset_out].MIMEname, "UTF-16BE//TRANSLIT");

が成功しているのかどうかが気ににゃりますにゃ.
この関数の戻り値cdが-1ににゃってたりする予感.
# 「"UTF-16BE//TRANSLIT"」って有効にゃのかにゃぁ….

何を疑っているのかというと,iconv()によるコード変換の流れ

1. iconv_open()でコンバージョンテーブルを用意
2. iconv()が用意されたにゃテーブルでコード変換
3. iconv_close()で後始末

の1が失敗してテーブルが用意出来にゃかったにもかかわらず
そのまま2に突入してあぼーんしているんじゃにゃいかってことだにゃ〜.
畠山さんのqpのソースコードkconv.cにゃんかは真面目にエラーチェックしてまして,

1. iconv_open()でコンバージョンテーブルを用意
2-a. テーブルが用意できたらiconv()でコード変換
2-b. テーブルが用意できにゃかったらstrcpyで変換無しにまるごとコピー
...

という風ににゃってるにょ.


Back to normal view.
MyNARI BBS version 1.0.1 (C)2003-2007 Achain