1

こんにちは、2 つの質問があります。

私は現在、必要なプロジェクトのためにクラリオンを学んでいます。現在、Windows モバイル アプリケーションの言語としてスキャナーとクラリオンを検討しています。

私が抱えている最初の問題は、Opticon スキャナー DLL や通常の c#.net DLL などのサードパーティ ベンダーの SDK DLL での clarion の使用に関するものです。これらの DLL を clarion で使用/アクセスし、コードで呼び出すにはどうすればよいですか。私は上記についてかなりの量の答えを探しましたが、かなり使えるものは見つかりませんでした。

2 番目の質問: クラリオンは、クラリオンが提供するアプリケーション ブローカーとスケルトンを使用して、Web ブラウザーを介して Windows アプリケーション用の通常のクラリオンを使用できます。クラリオンの自己生成コードによって作成されたメイン画面のエラー。エラーは、プラス記号が欠落している下のセグメントからの「Uncaught syntaxError: unexpected Identifier」です。

function icAjaxSubmit(controlValue)
{
    getContent(form.action+"? @"+$('#ClarionForm').serialize()+"&"controlValue+"="+$('#'+controlValue).value);
}

問題は、インターネット上でこれに関連するものを見つけることができないことと、これが生成されたファイルをクラリオン ディレクトリとアプリケーション ディレクトリで見つけることができないことです。また、プロジェクト コード自体にもありません。

最初の質問または 2 番目の質問の修正について何か知っている人はいますか?

ありがとうギデオン

4

2 に答える 2

2

クラリオンは、実際には上記のどれでもありません。理由を説明するのに時間はかかりません。理由を知っている人は理由を知っています。現実に戻れ。

外部 DLL (クラリオン以外の言語で記述されたものなど) を正常に呼び出すには、外部 DLL で呼び出されるプロシージャ/関数の PROTOTYPE 宣言が大きく関係しています。Clarion で文字列パラメータを受け取り、それを返す外部関数の典型的な PROTOTYPE は次のとおりです。

プロトタイプ:

(BSTRING),BSTRING,PASCAL,RAW,DLL(TRUE)

重要なのは、LibMaker.exe を使用して DLL から .LIB ファイルを作成することです。これは通常、Clarion の BIN フォルダにあります。DLL を開き、.LIB を DLL と共にプロジェクト フォルダーに保存します。次に、.LIB ファイルをプロジェクトのリソースの 1 つとして追加し、Clarion アプリケーションでプロシージャ/関数呼び出しを宣言するときに、「モジュール」がプロジェクトに含めた「.Lib」ファイルを指していることを確認します。これを行うには、ビューを「プロシージャ」から「モジュール」に切り替え、宣言されたプロシージャを見つけ、そのモジュールを Lib を指すように変更します。

プロジェクトを保存したら、Clarion プロジェクトに関連付けられている .MAP ファイルを削除し、再度開いて生成し、make を実行します。

上記の非常に便利なポイントの 1 つは、作成する .NET コード (C# など) で「Un-managed Exports」ライブラリを使用することです。これにより、Clarion の . NET クラス ライブラリをサポートし、正しいデータ型を返します。

Clarion のプロシージャ/関数を .NET (またはその他の言語) にエクスポートする場合は、呼び出し元アプリケーションのプロシージャ/関数名の「大文字と小文字」に特に注意してください。大文字と小文字が正確に一致している必要があります。は、クラリオン アプリケーションで宣言されました。

最後に、上記の "&" コメントに惑わされないでください。"&" は、C# や VB.NET などの言語の "+" 連結子に相当するものであり、注目する価値はありません。Clarion の機能を DLL にエクスポートすることも、外部 DLL を使用することも (.NET であろうとなかろうと)、どちらも比較的簡単にできることを知っておいてください。 .NET DLL を呼び出す場合、(d) Clarion の機能を C# や Delphi などの外部言語で使用できるようにする場合は、大文字と小文字の区別に注意してください。

于 2016-05-07T09:22:14.423 に答える