問題タブ [powerbuilder]
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.
.net - Pb で生成されたネイティブ Win32 dll を .Net から呼び出すにはどうすればよいですか? それともどこかから?
別の Pb アプリと .net (2.0) アプリの両方から、Pb (11.5) で生成されたネイティブ Win32 dll にリンクしようとしています。登録された COM オブジェクトが Pb から見えることは承知しています。私がやりたいことは、Pb (11.5 Enterprise を実行している) が COM ではなく、ネイティブの Win32 dll で関数を呼び出すようにすることです。私はまた別の方法に行きたい: Win32 exe (ネイティブと .net の両方) が Pb で生成された dll の関数を呼び出すようにしたい。私は限られた成功を収めてきました。
シナリオ 1: Pb がネイティブの Win32 exe & dll を生成します。
個別の pbl (shared.pbl と呼ばれる) といくつかの単純な関数 (文字列 HelloWorld を返す関数を含む) を含む単純なアプリを作成しました。プロジェクトは、exe と個別の dll にビルドされます。動作します (ボタンをクリックすると、ラベルにテキスト HelloWorld が表示されます)。
別のPb ワークスペースで、ほぼ同一のアプリを作成しますが、shared.pblは作成しません。最初のワークスペースから shared.dll を参照する外部関数を宣言します。
アプリの実行 - GetSystemMetrics() に関連付けられたボタンをクリックすると機能します。2 番目のボタンをクリックして shared.dll にアクセスすると、「外部関数の呼び出しでエラーが発生しました ...」というメッセージが表示されて失敗します。
2 番目のアプリを動作させることができた唯一の方法は、ターゲット プロパティのライブラリ リスト タブに shared.dll を追加することです 。ただし、これにより、dll の内容が生成された exe に埋め込まれているようです。shared.dll を削除すると、2 番目のアプリは問題なく実行されます。
生成された Pb コードに dll が埋め込まれていない状態で、Pb で外部の Win32 dll を参照するにはどうすればよいですか? shared.dll は Pb によって別のワークスペースに生成されたことを思い出してください。
シナリオ 2: .Net exe が Pb で生成された dll にアクセスする
次に、Pb アプリと同等の機能を持つ単純な .net アプリ (.net v2.0、vs2005) を作成しました。私はshared.dllを参照しています:
HelloWorld 関数を呼び出そうとすると、.net エラーが発生します。
エディター/逆アセンブラーを使用すると、関数名が "_getVtableInfo_f_get_hello_world@12" に変更されていることがわかりました。宣言でさまざまな命名バリエーションを試し、運が悪いと呼び出しました。
別の言語 (c++、c#) から Pb によって作成されたネイティブの Win32 dll を参照することは可能ですか? もしそうなら、どのように?
file - ファイルが別のプロセスから開かれているかどうかを確認する
ファイルが Powerscript の別のプロセスによって既に使用されているかどうかを確認するにはどうすればよいですか?
powerbuilder - Powerbuilder-データウィンドウの更新後、SQLNRowsは0です
Update
データウィンドウを初めて呼び出すと、1(成功)が返され、1になりSQLCA.SQLNRows
ます。同じ画面で2回目の更新を途中で閉じずに実行すると、Update
1が返され、 SQLCA.SQLNRows
0になります。これが発生する理由について何か提案はありますか?
powerbuilder - PowerBuilder アプリケーションの配布
PowerBuilder 9 IDE に付属のサンプル プロジェクトを .exe ファイルに展開しようとしています。
- 完全なビルド - 成功しました。
デプロイ - 次のエラーで失敗します:
「現在のライブラリ リストは、このプロジェクトに含まれるライブラリ リストとは異なります。プロジェクト ライブラリ リストが更新されました。更新されたリストのビルド オプションを指定して、再試行してください。」
どうすればこれを克服できますか?
前もって感謝します
regex - 正規表現拡張機能を探しています
アプリケーションで使用できる正規表現ライブラリを探しています。これは PowerBuilder で記述されています (PB にはいくつかの RegEx 機能がありますが、私のニーズにはあまりにも限られています)。必要な特性は次のとおりです。
- インターフェイス: COM またはエクスポートされた関数 (エクスポートされたクラスは使用できません)
- ユニコード
- 無料
- 生産準備完了
そのようなツールはどこで見つけることができますか?
ありがとう、エラン
powerbuilder - PowerBuilder (PBOrca) 自動ビルド
PowerBuilder アプリの自動ビルド プロセスを毎晩実行しています。これを設定するために使用したリソースはhttp://dm.char.com.ua/pb/pborca.htmです。PBOrca が公式にサポートされているツールなのか、それとも誰が担当しているのか (リンク先のサイトを運営している紳士なのか?)、私にはよくわかりません。そのリンクからダウンロードしましたが、新しいバージョンが出ている可能性があると思います。これはどこで入手できますか?私は無駄にグーグルで検索しましたが、sybase.com で使用法に関するドキュメントを見つけましたが、実際のダウンロードはありませんでした。
私が新しいバージョンを探している理由は、PB11.5 でサポートされている新しいスタイル コントロールは自動ビルドからは利用できませんが、開発からは正常に動作するため、ビルドを展開すると、一種の Windows クラシック テーマが使用されます。他の人のorcaスクリプトでNEWVSTYLECONTROLSをオンラインで渡すことへの参照を見つけましたが、試してみるとパラメーターの数が間違っていると不平を言い、私が見ている例には異なるパラメーターリストがあります。
ありがとうございました。
アラン
ide - Sybase Powerbuilder の代替 IDE
Sybase Powerbuilder の代替 IDE を知っている人はいますか? VS2008 と Eclipse で作業した後では、かなりぎこちなく感じます。
そうでない場合、IDE 以外でこの言語を使用して成功した人はいますか? 単純なテキスト エディターの使用に反対しているわけではありませんが、単純に Powerbuilder エディターを使用するよりも edit-import-regenerate-test-export-edit の方が扱いにくいと思います。
これまでのところ、私が成功した唯一のツールは次のとおりです。
- PowerGen、ビルド用 (NUnit および CruiseControl.NET を使用)
- ConTEXT、Powerbuilder の構文の強調表示があります。
- PBL Peeper (IDE には存在しない興味深い機能がいくつかあります)
編集:質問にもっと広い注目を集めるために賞金を追加しました。もし存在するなら、それは非常に素晴らしいことです。
編集:それは残念でした。報奨金により、新しい人が 1 人も質問に目を向けなかったようです。
formatting - PowerBuilder: 国際通貨のフォーマット
バックグラウンド
米国のユーザーがアプリケーションの最初のユーザー ベースでしたが、カナダ、イギリス、スカンジナビアのユーザーもシステムを使用するまでに拡大しました。
PowerBuilder データウィンドウは、小数とピリオドが転置されたスカンジナビア通貨形式 (###.###,00) を好みませんでした。データウィンドウでフォーマットを設定しようとすると、フォーマットが無効であるというエラーが表示されました。
この問題に遭遇したのは私たちだけではありませんが、インターネットでの通常の検索では、このトピックについてあまり見かけませんでした。
現在の回避策
当面の間、開発者の 1 人が回避策を見つけました。ログイン スクリプトでセッションの Windows オペレーティング システムの通貨形式を変更し、データウィンドウ フィールドの format プロパティに「[currency]」を入力してオペレーティング システムの通貨形式を選択することでした。フォーマット。
これは機能しているように見えますが、いくつかの理由から、私の意見では最適なソリューションとは言えません。
- スカンジナビアのユーザーは、他のユーザーとは異なるアイコンを使用してアプリを実行する必要があります。アプリにログインするために 2 つの異なるアイコンを使用することがどれほど腐っているか、さらに、それぞれが異なる形式のスクリプトを開始するというメンテナンスの煩わしさについて詳しく説明する必要はありません。
- ユーザーセッションでの単一通貨の通貨フォーマットの問題のみを解決します。アプリの国際化が進むにつれて、同じレポートにさまざまな通貨を表示できるようにする必要があるかもしれません。
もっと良い方法があるに違いない
Spolsky の Unicode エッセイを読む必要があると誰かが言うことはほぼ間違いありません。しかし、それとは別に、PowerBuilder の洗練されたソリューションの詳細に興味があります。前もって感謝します。