문제

32 비트 및 64 비트 DB2 구현에서 동시에 작동하는 *IX 운영 체제에서 C / C ++ 프로그램을 성공적으로 작성할 수 있습니까?

정확한 요구 사항은 32 비트 DB2 데이터베이스에서 읽고 64 비트 DB2 데이터베이스에 쓰는 것입니다.

도움이 되었습니까?

해결책

C 공통 클라이언트는 네트워크 연결을 사용하므로 32 비트 클라이언트가 32 비트 또는 64 비트 서버 (또는 별도의 연결에서)에 연결하지 않아야하는 이유는 없습니다. 동일한 의견이 64 비트 클라이언트에 적용됩니다. 클라이언트와 서버간에 통신하는 데 사용되는 DRDA 프로토콜은 괜찮습니다.

나는 Informix (당신이 묻지 않은)에 대해 결정적으로 대답 할 수 있습니다-나는 32 비트 또는 64 비트 ESQL/C를 사용하여 문제없이 32 비트 또는 64 비트 IDS 서버에 연결합니다. 유일한 제한은 공유 메모리 연결에 관한 것입니다. 그런 다음 클라이언트와 서버는 동일한 '비트'라는 것이어야합니다. 그러나 네트워크 연결과 로컬 (스트림, 소켓) 연결은 중립적입니다.

다른 팁

문제는 두 라이브러리를 동시에로드해야한다는 것입니다. 심볼 이름이 충돌하기 때문에 두 개의 -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를 모르기 때문에 더 이상 도움을 줄 수는 없지만 이것이 문제라면 이제 문제를 해결하기 위해 모든 것이 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top