DOBON.NET DOBON.NETプログラミング掲示板過去ログ

和暦→西暦変換

環境/言語:[WinXP NET Framework1.1]
分類:[.NET]

コントロールパネルの地域の設定
を和暦→西暦に変更できるか調査してます

何とか以下コードまで出来たのですが
実行すると、「オブジェクト参照ができません..」
(System.NullReferenceException)が発生します
何が悪いのでしょうか?教えて下さい

Declare Function GetUserDefaultLCID% Lib "KERNEL32" ()
Declare Function SetLocaleInfo Lib "KERNEL32" Alias _
"SetLocaleInfoA" (ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String) As Long
Sub TEST
Const CAL_西暦 = "1"
Const LOCALE_ICALENDARTYPE = &H1009
Dim dwLCID As Long

dwLCID = GetSystemDefaultLCID()
'dwLCID:75342299126563857

Call SetLocaleInfo(dwLCID, LOCALE_ICALENDARTYPE, CAL_西暦)
↑この行で落ちる

End Sub
  • 題名: Re[1]: 和暦→西暦変換
  • 著者: さばちゃん
  • 日時: 2006/07/19 15:13:24
  • ID: 16718
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
> Declare Function GetUserDefaultLCID% Lib "KERNEL32" ()
>dwLCID = GetSystemDefaultLCID()
間違っていました(以下、正)
Declare Function GetUserDefaultLCID Lib "KERNEL32" () As Long
dwLCID = GetUserDefaultLCID()

GetUserDefaultLCID は正常に値取得できるのですが
SetLocaleInfo で落ちます
> コントロールパネルの地域の設定
> を和暦→西暦に変更できるか調査してます

本当にそれが目的なんですか?
DateTime を西暦な文字列に変換する方法は別途用意されてますよ。
  • 題名: Re[2]: 和暦→西暦変換
  • 著者: さばちゃん
  • 日時: 2006/07/19 15:44:01
  • ID: 16720
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
返信有難うございます
カルチャで対応する案も考えていますが
OSのプロパティ変更も可能か調査したくて...
(強引な手かも知れませんが)

DOBON.NET | プログラミング道 | プログラミング掲示板