2017-11-23 3 views

答えて

1

LibXLは、機能のバージョンANSIおよびUNICODEのヘッダーを提供します。

APIのユニコードバージョンを使用するプログラムでは、UNICODEマクロを定義する必要があります。 Visual Studioを使用している場合は、Project -> Properties -> Character Setに行くほど簡単で、Use Unicode Character Setに設定してください。

xlSheetWriteStrと表示されるものは、実際には値がxlSheetWriteStrAまたはxlSheetWriteStrWになるマクロです。 UNICODEが定義されていない場合は、後者の場合は前者です。

SheetA.hで関数xlSheetWriteStrAが宣言されていますが、xlSheetWriteStrWSheetW.hで宣言されています。

注:あなたが一貫していると良いでしょう。関数のUnicodeバージョンを使用する場合は、すべての関数のUnicodeバージョンを使用します。あなたの例では、あなたがxlBookAddSheetのansiバージョンを使用しているのが分かります。

更新:ライブラリのOSXバージョンのマクロは、先行アンダー(詳細はlibxl.hを参照)、_UNICODEあります。

+0

おかげさまでは、 '_UNICODE'を定義すると、すべてのUnicodeバージョンのメソッドを使用するように見えます。 – Todd

+0

これは正確です。定義していない場合は、ANSIバージョンを使用するか、特定の関数を直接呼び出すか(この場合は 'xlSheetWriteStrW')を選択する必要があります。 –

関連する問題