したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

【Weiss】技術的なスレ

144:2003/04/11(金) 04:18 ID:6fkOkvNY
ちょっとアレゲなコードかもしれません。

□[茜]Weiss.ini の [Server] 節 IP にホスト名を使用可能にします
================================================================================
■コードベース: α0x0016
■最終更新日時: 2003-04-06 18:23

 サンプルコード丸写しのため、汚いコードになっていますが、お察しください。

行頭 + その行を追加
行頭 - その行を削除
行頭その他 元々存在する行(この行近傍にパッチしてください)
================================================================================
Main.pas
--------
【var 節】

■グローバル
//------------------------------------------------------------------------------
var
+DefaultServerIP:String;
//------------------------------------------------------------------------------

■procedure TfrmMain.FormCreate(Sender: TObject);
//------------------------------------------------------------------------------
var
+wVersionRequired: Word;
+WSData: TWSAData;
+Status: Integer;
+Name: array[0..255] of Char;
+HostEnt: PHostEnt;
+IP: PChar;
//------------------------------------------------------------------------------

【implementation 節】
■procedure TfrmMain.FormCreate(Sender: TObject);
//------------------------------------------------------------------------------
begin
+wVersionRequired := MAKEWORD(1, 1);
+Status := WSAStartup(wVersionRequired, WSData);
+if Status <> 0 then begin
+MessageDlg('This version of WinSock does not support Host->IP feature!!', mterror, [mbOK], 0);
+exit;
+end;
//------------------------------------------------------------------------------
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
sl.Clear;
ini.ReadSectionValues('Server', sl);

+DefaultServerIP:= sl.Values['IP'];
+//DebugOut.Lines.Add(sl.Values['IP']);
+StrPCopy(Name, DefaultServerIP);
+HostEnt := GetHostByName(@Name);
+if HostEnt <> nil then begin
+IP := HostEnt^.h_addr_list^;
+sl.Values['IP']:= IntToStr(Integer(IP[0]))
++ '.' + IntToStr(Integer(IP[1]))
++ '.' + IntToStr(Integer(IP[2]))
++ '.' + IntToStr(Integer(IP[3]));
+end;
+//DebugOut.Lines.Add('->' + sl.Values['IP']);
//------------------------------------------------------------------------------

■procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
//------------------------------------------------------------------------------
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));

-ini.WriteString('Server', 'IP', inet_ntoa(in_addr(ServerIP)));
+ini.WriteString('Server', 'IP', DefaultServerIP);
//------------------------------------------------------------------------------


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板