日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

gdb for Windows ダウンロード

単独で配っていないようなので
(1) ソースコードを入手して、適当なフォルダに展開します
(2) 自分でビルドします

build gdb for Windows
linuxかcygwinを用意して mingwパッケージをインストールしておきます。

まず デバッガに c:\cygwin\bin\gdb.exe が使えないか試したほうが楽でしょう。

静的コンパイル: Windows

cygwinでWindows用バイナリをコンパイル
10分くらいで出来上がります
今回は gdb-8.0を使いました
make distclean
find . -name config.cache -exec rm {} \;
./configure --host=i686-w64-mingw32 \
--disable-host-shared \
LDFLAGS=" -lintl -static -static-libstdc++"
make
# gdb/gdb.exeがあることを確認
# DOSプロンプトで動くことを確認しましょう。
# フォルダ作成(bin)とコピー
mkdir bin
find . -type f -name "*.exe" -exec cp {} bin/ \;
はい、出来上がりました。
chew.exe gdb.exe gdbreplay.exe gdbserver.exe
が binフォルダに入っていると思います。
gdbを実行しコマンドプロンプトが表示されれば成功です。
「quit」と打つとgdbを終了することができます。

Windows用のIDEにgdb.exeの場所を指定して終了です。

【以下のようなエラーは、動的リンクになっています】

  • コンピューターに libintl-8.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
  • コンピューターに libwinpthread-1.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
解決方法:pathを通すか静的コンパイルすると動きます。

【gccまたは、mingwが古い時のエラー】
  • checking for library containing strerror... configure:
    error: Link tests are not allowed after GCC_NO_EXECUTABLES.
    ターゲット 'configure-libiberty' のレシピで失敗しました
cygwinの場合は、 セットアップを「 setup.exe -o 」で 起動して、管理されていない古いパッケージを削除すると直るかもしれません。
古い i686-pc-mingw32 パッケージを自動削除することで直りました。
カテゴリー: ぷろぐらみんぐ
2017.07.03

普段使っているアプリをDelphi10.2で再構築すると
3倍のサイズになりとても大きくなりました。少しの修正が必要でした。
531KB Delphi Win32
2555KB Delphi 10.2
 
©や🍮とか入力できるようになったのでいいとしましょう。
対応していない場合は c ?? となります

同じものを .netで作るとおそらく 20-30KBくらいではないかと思います
2時間あれば、.Netへ移植できそうなアプリなんですけど、困っていないし、面倒ですからね。

移行に関して、
  • RegExpr → RegularExpressions
  • PAnsiChar → PWideChar
  • 他数点
の変更が必要でした。

» 続きを読む

カテゴリー: ぷろぐらみんぐ
2017.07.01

#error ディレクティブ delphi

コンパイル C/C++ C# Delphi
停止 #error メッセージ {$Message Fatal 'メッセージ'}
継続 #warning メッセージ {$Message Warn '警告だよ'}
{$Message Hint 'ヒントだよ'}
{$Message Error 'エラーだよ'}
#pragma message("")

{$Message Hint 'ヒントだよ'}
{$Message Warn '警告だよ'}
{$Message Error 'エラーだよ'}
{$Message Fatal '致命的なエラーだよ'}

{$IF CompilerVersion > 18.5}
   {$Message Fatal 'Delphi 2007 for Win32 以前のバージョンを使ってください'}
{$IFEND}

{$IF CompilerVersion < 20.0}
   {$Message Fatal 'Delphi 2009 (Unicode版)以上を使ってください'}
{$IFEND}

{$IF CompilerVersion < 32.0}
  {$Message Fatal 'Delphi 10.2 Tokyo (VER320)以上を使ってください'}
{$IFEND}

http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Delphi コンパイラ指令のリスト:インデックス
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/MESSAGE 指令(Delphi)
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/コンパイラ バージョン

カテゴリー: ぷろぐらみんぐ
2017.04.07

Delphi FileSize ファイル名指定

function FileLen(const AFilename: WideString): Int64;
  var
    info: TWin32FileAttributeData;
begin
  Result := -1;

  if NOT GetFileAttributesExW(PWideChar(AFilename), GetFileExInfoStandard, @info) then
      EXIT;

  if (info.dwFileAttributes AND FILE_ATTRIBUTE_DIRECTORY > 0) then
      EXIT;
//    raise Exception.CreateFmt('Can not get file size : %s', [AFilename]);

  Result := Int64(info.nFileSizeLow) or Int64(info.nFileSizeHigh shl 32);
end;

function FileSize(const AFilename: WideString): Int64;
begin
  Result := FileLen(AFilename);
end;

標準の関数ではファイルハンドルが必要で、この関数は直接ファイル名を指定できます。
また、標準の関数では32ビット整数のため大きなサイズのファイルを正しく返せない不具合を起こしますがこの関数は64ビット整数で返します。
Unicodeファイル名対応です。 AnsiString,stringをいれても自動型変換が行われるので、SHIFT_JISファイル名でも動作します。

戻り値:
成功した場合は 0以上
失敗した場合は -1
の値が返ってきます
カテゴリー: ぷろぐらみんぐ
2017.03.11

Delphi 2.0 ロゴ画面で止まる Windows10

症状
2016年4月は、Windows10で起動していました。
2017年2月に起動するとロゴから起動しなくなっていました。

原因:
おそらくWindows10のメジャーアップデートもしくはセキュリティソフトが原因です



一時的な対処方法 Workaround
(1) bin\CMPLIB32.DCL 名称変更. CMPLIB32-.DCLなどなんでもいい。
(2) Delphi 2.0 を起動します
次のエラーが表示されるのでOKをクリックします
Cannot open component library C:\Program Files\Borland\Delphi 2.0\BIN\CMPLIB32.DCL (error code 126).
(3) (1)のファイルを元の名前に戻します
(4) コンポーネント - ライブラリを開く をクリックします
(5) bin\CMPLIB32.DCL を選択します
(6) コンポーネントがロードされ、一応動作可能になります

※ (1)と(3)はレジストリ変更でも同様のことができます。

※ 次回起動するとロゴで停止するので、毎回処理が必要です。


一時的な対処方法 Workaround その2
  • QuickReportがいらない場合は削除することで回復することができます。
  • CMPLIB32.DCLのバックアップを忘れずに、(QuickRepoのREG.pasがないため)

(1) タスクマネージャーで フリーズしたDelphi2 を強制終了する

(2) コンポーネント読み込めないように 名称変更する
C:\Program Files\Borland\Delphi 2.0\BIN\
CMPLIB32.DCL

bin\CMPLIB32-.DCL
に変更する

(3) Delphi2を起動する
起動しない場合は、ほかの原因

(4) コンポーネントを読み込む
コンポーネント - ライブラリを開く (2) のファイルを選択する

(5) ライブラリの編集:問題のコンポーネントを削除する
(5-1)  コンポーネント - インストールをクリック
インストールされた ユニット
「QuickRep」を選択し削除する
(5-2) 次に ライブラリ名を CMPLIB32.DCL にして
(5-3) OKをクリックする

(6) IDEを再起動してみる
問題なければ起動ができるはず



Windows10で動かすための,そのほかの確認事項は以下の通りです
(1) 現在ログイン中のユーザーにフルアクセス権限に設定するには、
icacls "C:\Program Files\Borland\Delphi 2.0" /grant %USERNAME%:F /t /c /l /q

(2) C:\Program Filesは、Windows VirtualStoreが管理しているのでそちらも念のため確認が必要です。
Windows VirtualStoreを無効にするも参考にしてください

(3) HKEY_CURRENT_USER\Software\Borland\Delphi\2.0\Library
ComponentLibrary
SearchPath


キーワード
Delphi 2.0 ロゴ画面で止まる Windows10
Stop on the Delphi 2.0 logo screen
カテゴリー: ぷろぐらみんぐ
2017.02.11



PR

[PR]