DLL 内の関数を使用するアプリケーションの開発では、必要な関数定義のはいった「インポートライブラリ」とアプリケーションをリンクするのが一般的な方法です。
この項ではインポートライブラリを使わずに Windows ベースの Embedded SQL アプリケーションを開発する方法を説明します。DBLIB は、インポートライブラリとリンクしなくても、動的にロードできます。これには、インストールディレクトリの SDK\C サブフォルダーにある esqldll.c モジュールを使用します。
UNIX プラットフォームで DBLIB を動的にロードする場合にも同様の手法を使用できます。
プログラムでは、db_init_dll を呼び出して DLL をロードし、db_fini_dll を呼び出して DLL を解放します。db_init_dll はすべてのデータベースインターフェイス関数の前に呼び出してください。db_fini_dll の後には、インターフェイス関数の呼び出しはできません。
db_init と db_fini ライブラリ関数も呼び出してください。
Embedded SQL プログラムでは、EXEC SQL INCLUDE SQLCA 文の前に esqldll.h ヘッダーファイルをインクルードするか、sqlca.h をインクルードしてください。esqldll.h ヘッダーファイルは sqlca.h をインクルードします。
SQL の OS マクロを定義します。sqlca.h にインクルードされるヘッダーファイル sqlos.h は、適切なマクロを特定して、定義しようとします。しかし、プラットフォームとコンパイラーの組み合わせによっては、定義に失敗することがあります。その場合は、このヘッダーファイルの先頭に #define を追加するか、コンパイラーオプションを使用してマクロを定義してください。Windows で定義が必要となるマクロを次に示します。
マクロ | プラットフォーム |
---|---|
_SQL_OS_WINDOWS | すべての Windows オペレーティングシステム |
esqldll.c をコンパイルします。
インポートライブラリにリンクする代わりに、オブジェクトモジュール esqldll.obj を Embedded SQL アプリケーションオブジェクトにリンクします。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |