同時に、32ビットのDB2と64ビットのDB2に接続するC / C ++プログラム
質問
が正常に同時に32ビットと64ビットのDB2実装の両方で動作する*第IXオペレーティングシステムでC / C ++プログラムをオーサリングすることが可能ですか?
正確な要件は、32ビットのDB2データベースから読み出され、64ビットのDB2データベースに書き込むことである。
解決
C共通クライアントがネットワーク接続を使用しているため、
、32ビットクライアントは、32ビットまたは64ビット・サーバ(または別の接続の両方)のいずれかに接続してはならない理由は明白な理由はありません。同じコメントは、64ビットのクライアントに適用されます。クライアントとサーバー間の通信に使用されるDRDAプロトコルはOKであるべきである。
私は(あなたがについて尋ねるなかった)Informixのために決定的に答えることができる - 私は問題なく32ビットまたは64ビットのIDSサーバーに接続するために、32ビットまたは64ビットESQL / Cを使用します。唯一の制限は、共有メモリ接続です。その後、クライアントとサーバが同じ「bittiness」でなければなりません。しかし、ネットワーク接続とローカル(ストリーム、ソケット)の接続が中性である。
他のヒント
私はあなたの問題はあなたが同時に両方のライブラリをロードする必要があること、だと思います。シンボル名が衝突するので、あなたはただ、2つの-lオプションを使用して実行可能ファイルに両方をリンクすることはできません。これが問題である場合は、あなたの友人場合にdlopenます。
#include <dlfcn.h>
void * handle=dlopen(filename,RTLD_NOW|RTLD_GLOBAL);
bool (*some_function)(char * name);
some_function=(bool (*)(char *))dlsym(handle,"name_of_some_function");
if (some_function("test")) {
....
} else {
....
}
私はDB2を知らないので、私はそれ以上のあなたを助けることはできませんが、これが問題だった場合、あなたは今、問題を解決するためにすべてを持っている必要があります。
所属していません StackOverflow