ÎÒ´ÓVC++ÖÐͨ¹ýPBNIÀ´´ò¿ªÄ³¸ö´°¿Ú£¬ÏÖÔÚ´°¿ÚÊÇ´ò¿ªÁË£¬µ«´ò¿ªµÄPB³ÌÐòµÄdatawindowµÄXpÑùʽûÓÐÁË£¬Õâ¸öÔõô½â¾ö£¿ÎÒÖªµÀPBÊÇͨ¹ýÔÚExeÀO³ÉÒ»¸öÑùʽµÄXMLÀ´ÊµÏÖXPÑùʽµÄ£¬µ«ÏÖÔÚ²»ÊÇͨ¹ýEXE´ò¿ªµÄ´°¿Ú£¬XpÑùʽ¾ÍûÓÐÁË£¬ÏÖÔÚÏëÎÊÈçºÎʹÕâ¸öÊý¾Ý´°¿Ú¾ßÓÐXPÑùʽ£¿Èç¹ûûÓÐÑùʽµÄ»°£¬½çÃæʵÔÚÌ«³óªÁË¡£
ÎÒÖªµÀÊý¾Ý´°¿Ú²»ÊÇWindowsµÄ±ê×¼¿Ø¼þ£¬Sybase¿Ï¶¨²»ÊÇÄÄô¼òµ¥µÄ¼ÓÔØCOMCTL32.DLL¾Í¿ÉÒÔʵÏÖÊý¾Ý´°¿ÚµÄXPÑùʽµÄ£¬Èç¹û´æÔÚʲôÄÚ²¿º¯Êý»òÕßδ¹«¿ªµÄPBº¯ÊýÈÃÎҴﵽĿµÄ£¬ÄľÍÌ«ºÃÁË¡£
ÏÂÃæÊÇÎҵĴò¿ª´°¿ÚµÄ´úÂ룬´°¿ÚÊÇ·ÅÖÃÓÐÒ»¸öÊý¾Ý´°¿Ú£¬´°¿ÚÊÇͨ¹ýnf_open¶ÔÏóÖеÄuf_openº¯ÊýÀ´´ò¿ªµÄ£º
IPB_VM* pbvm = NULL;
hinst = LoadLibrary(L"pbvm115.dll");
if ( hinst== NULL) return 0;
P_PB_GetVM getvm = (P_PB_GetVM)GetProcAddress(hinst,"PB_GetVM");
if (getvm == NULL) return 0;
getvm(&pbvm);
if (pbvm == NULL) return 0;
LPCTSTR LibList[] = {L"open.pbd"};
if ( pbvm->CreateSession(L"aopen", LibList, 1, &session) != PBX_OK )
{
return 0;
}
pbgroup group = session->FindGroup(L"n_open",pbgroup_userobject);
if (group == NULL) return 0;
pbclass cls = session->FindClass(group,L"n_open");
if (cls == NULL) return 0;
pbobject pbobj = session->NewObject(cls);
PBCallInfo ci;
pbmethodID mid = session->GetMethodID(cls, L"uf_open", PBRT_FUNCTION,
L"LURCdatawindow.");
session->InitCallInfo(cls, mid, &ci);
....