2017-07-11 15 views
0

これはcygwinです。cygwin dlopenエラー:無効または不完全なマルチバイトまたはワイド文字

私はいくつかの共有ライブラリといくつかの静的ライブラリを含む共有ライブラリを持っています。 dlopen()が呼び出されると、ハンドルが返されますが、perror()は "無効または不完全なマルチバイトまたはワイド文字"を返します。

明らかに私のライブラリ内の何かが失敗しています。これをどのようにデバッグできますか? dlopenにライブラリや関数に誤りがあることを教えてもらう方法はありますか?

答えて

1

2つの問題:

  1. あなたは関数が失敗していないにもかかわらず、errnoをご確認ください。 errnoの値は、前の関数が失敗した場合にのみ定義されます。

  2. dlopenが失敗したときにあなたがerrnoperrorまたはstrerrorを使用すべきではありません。 dlerrorを使用してください。

+0

ありがとうございます!それは私が知る必要があったものです。 – garyp

関連する問題