問題タブ [fpc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
961 参照

winapi - Win32 ミューテックスが待機していません

プロセス間通信を実装するアプリケーションを作成しています。この目的のために、私は共有バッファを設定しました。これは正常に機能しているようです。ここで、データ生成アプリケーション (c++ で記述) がデータ受信アプリケーション (freepascal/lazarus で記述) にいつデータを読み取る必要があるかを伝える方法が必要です。

この目的のためにミューテックスを使用しようとしていました。Windows API プログラミングの経験はあまりありません。

したがって、私の問題は、以下の FreePascal コードでは、ミューテックスが待機しないことです。TMutex.Wait() 関数を呼び出すことができます。エラーなどは返されませんが、単に待機しません。

コンストラクタ TMutex.Create(sName: AnsiString);
sNameを開始し
  ます:= 'Local\Mutex'+sName;
  hMutex := CreateMutexA(
        nil, // デフォルト アクセス
        True, // 最初は所有されていない
        PChar(sName)); // 名前付きミューテックス
  hMutex = 0 の場合は、例外の発生を
  開始します。Create
    ('mutex の作成に失敗しました');
  終わり;
終わり;

デストラクタ TMutex.Destroy;   CloseHandle(hMutex)
を開始します。 終わり; 手順 TMutex.Wait; begin   if (WaitForSingleObject(hMutex, INFINITE) <> 0) then ShowMessage('debug: 何かが返されるのを待つ'); 終わり;








手順 TMutex.Post;   ReleaseMutex(hMutex)
を開始します。 終わり;


0 投票する
3 に答える
1548 参照

delphi - Delphi から Lazarus に変換された GUI アプリの空のメイン フォーム

2 つの GUI アプリを Delphi から Lazarus に変換しました。どちらのアプリも、Win32 プラットフォーム、i386、および GUI でコンパイルされます。メイン フォームは Lazarus ツールを使用して変換され、IDE から編集できます。しかし、そのようなアプリケーションを実行すると、メインフォームは表示されず、コントロールのない空白のフォームのみが表示されます。

これをデバッグしようとしました。すべてのコードを初期化セクションで実行し、.lpr プロジェクトからコードを実行しますが、メイン フォームの OnCreate イベントでコードを実行しないため、CreateForm() で問題が発生します。'<App.Run'イベント ログでは、この空のフォームを閉じた後に表示されるすべてのテキストを確認できます。

.lpr プロジェクトのコード:

Lazarus から単純な GUI アプリを作成できることを確認しましたが、変換された GUI アプリは両方とも期待どおりに動作しません。何が間違っている可能性がありますか?私は何かを逃しましたか?ラザロが書いた多くの警告やヒントの 1 つが重要なのではないでしょうか?

アプリを実行すると、Lazarus は次のように書いています。

編集:

Lazarus 変換ツールは .dfm -> .lfm を変換しましたが、.pas ファイルに問題があります。私は手動でしなければなりませんでした:

  1. Lazarus ユニットを use に追加:

    {$IFDEF FPC} を使用 LCLIntf、LResources、{$ENDIF}

  2. 条件付きコンパイル Delphi フォーム {$R *.dfm}:

    {$IFNDEF FPC} {$R *.dfm} {$ENDIF}

  3. 初期化コードに .lrs リソースを追加します。

    初期化 {$IFDEF FPC} {$i myunit.lrs} {$ENDIF}

0 投票する
3 に答える
1341 参照

user-interface - FPCを使用したGUIのみ

Lazarus をインストールした FPC (Pascal) だけを使用して、Delphi 言語 (Object Pascsl) を使用せずに GUI アプリケーション (32 ビット) を開発する方法を知りたいです。ありがとう。

0 投票する
1 に答える
1000 参照

flash - DelphiまたはFreePascalのAMFライブラリを誰かに教えてもらえますか?

通常の容疑者(Google Code、Source Forge、SO)で簡単な検索を行いましたが、AMFまたはFlash/Flexリモート処理のプロジェクトのヒントは見つかりませんでした。

この種のプロジェクトに出くわした人はいますか?

0 投票する
1 に答える
217 参照

freepascal - fpmake.pp は何を使用し、現在も使用されていますか?

私はそれを一度使用しましたが、いくつかの適切な例/ドキュメントを入手するのが難しいことがわかったため、あまりうまくいきませんでしたが、環境を完成させるための良い方法でした.

それはまだ標準ですか、それとも放棄されたままですか?

初心者向けのハウツーと上級者向けのハウツーはどこにありますか?

ありがとう。

0 投票する
1 に答える
1194 参照

makefile - fpcmake と Makefile.fpc のトレーニングはどこで受けられますか?

私はこれらのどれも使用したことがありませんが、Free Pascal のメイン サイトにリストされているので、実際に使用したいと思います。

  • 初心者向けガイド
  • 私が成長するのを助けるための高度なガイド

これはすべて、まだ使用/標準の場合に備えています。

ありがとう

0 投票する
2 に答える
1978 参照

delphi - Lazarus アプリのスプラッシュ スクリーンの問題

Delphi アプリケーションを FPC/Lazarus に移植していますが、このアプリケーションはスプラッシュ スクリーンに情報を表示します。ユニットに初期化セクションがある場合、この初期化セクションは次のようなものを呼び出します。

これは Delphi で動作しますが、FPC/Lazarus を使用してこれをコンパイルすると、スプラッシュ スクリーンでフォームを作成すると例外が発生しました。

Application.Initialize;が呼び出された後にフォームを作成できることがわかったので、私の回避策は、 ScreenInfo.Initialized=true. 機能しますが、すべての情報が表示されるわけではありません。ユニット初期化セクションの前にスプラッシュ フォームを表示する方法はありますApplication.Initialize;か?

0 投票する
1 に答える
1236 参照

delphi - Lazarus/FPC での WM_COMMAND の問題

MainMenu のフォームがあり、ユーザーがメニューからコマンド項目を選択したときにインターセプトしたい。これは Delphi で機能します。

MainMenu にいくつかの項目を追加し、メニューからそれらの項目を選択すると、Memo1 が次のように入力されます。

このアプリケーションを FPC/Lazarus に移植しましたが、WM_COMMAND ハンドラが呼び出されていないようです! Delphi でブレークポイントを設定するとTForm1.WMCommand、メイン フォームが表示される前に Delphi が何度も停止しました。Lazarus は、このブレークポイントで停止することはありませんでした。Lazarus の WM_COMMAND で何かが壊れていると思いますが、何かわからないことがあります。何か案が?

WinXP で FPC 2.2.4 を搭載した Lazarus 0.9.28.2 ベータ版を使用しています。

編集:

Winspector を使用して、MainMenu が WM_COMMAND を生成することを確認しました。

Lazarus/FPC の WM_COMMAND メッセージ メソッドの処理にバグがあると思い、報告しました: http://bugs.freepascal.org/view.php?id=15521

0 投票する
1 に答える
307 参照

optimization - WPO (プログラム全体の最適化) でプログラムのサイズが改善されないのはなぜですか? (FPC2.4.0)

私はWinXPにFPC 2.4.0を使用しています(公式ページのバイナリ)。これも同じバージョンで試しましたが、コンプのソースからコンパイルしました。私はこのようなものを置きます:

I:\pascal\fpc-2.4.0.source\fpc-2.4.0\compiler\ppc386 -FWserver-1.wpo -OWsymbolliveness -CX -XX -Xs- -al -Os -oServer1.o Server
I:\pascal\fpc-2.4.0.source\fpc-2.4.0\compiler\ppc386 -FWserver-2.wpo -OWsymbolliveness -Fwserver-1.wpo -Owsymbolliveness -CX -XX -Xs- -al -Os -oServer2.o Server
..(up to 100 times)

ただし、常に同じ .wpo ファイルと同じ .o サイズ (.s、アセンブリ ファイルは断続的に変更されます)

また、使用されていない変数がまだ生きていることも(コンパイラメッセージを通じて)わかりません。-OWall -owall も試してみました。何が間違っていますか?