私は現在、この 4 人のチームで問題に直面しています。
kiskaのサイトでダウンロードしたバイナリを使用します。cobol を C にcobcrun
コンパイルして実行するか、実行可能ファイルにコンパイルすることができます。しかし、opencobol で postgres コマンドを見つけることができません。
これが私のCOBOLスクリプトのストラトです:
identification division.
program-id. pgcob.
data division.
working-storage section.
01 pgconn usage pointer.
01 pgres usage pointer.
01 resptr usage pointer.
01 resstr pic x(80) based.
01 result usage binary-long.
01 answer pic x(80).
procedure division.
display "Before connect:" pgconn end-display
call "PQconnectdb" using
by reference "dbname = postgres" & x"00"
by reference "host = 10.37.180.146" & "00"
returning pgconn
end-call
...
呼び出しはPQconnectdb
失敗しますmodule ont found : PQconnectdb
libpq.dll の名前を変更すると、エラー メッセージがcan't find entry point
. したがって、少なくとも私のdllを取得できると確信しています。
libcob
ライブラリの call メソッドのコードを掘り下げた後。環境変数COB_PRE_LOADを使用していくつかの dll をプリロードすることは可能であることがわかりましたが、結果はありません。
cobol をコンパイルするスクリプトは次のようになります。
call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat"
set COB_CONFIG_DIR=C:\OpenCobol\config
set COB_COPY_DIR=C:\OpenCobol\Copy
set COB_LIBS=%COB_LIBS% c:\OpenCobol\libpq.lib
set COB_LIBRARY_PATH=C:\OpenCobol\bin
set COB_PRE_LOAD=C:\OpenCobol\libpq.dll
@echo on
cobc -info
cobc -free -o pgcob -L:"C:\OpenCobol" -llibpq.lib test_cobol\postgres.cob
call cobcrun pgcob
不足しているものはありません。kiska のサイトの 64 ビット バイナリを使用し、Visual Studio の 64 ビット cl.exe を使用しています。Postgres も 64 ビット バージョンです (dependencyChecker でチェック)。
私は Visual Studio から生成された C をコンパイルしようとしましたが、同じ結果でしたが、何かを見落としている可能性があります。
何が欠けていますか?