Powerbuilder ORCA API部署
问题描述:
我想用orca api将我的powerbuilder项目部署到EAServer。但我gettiing错误-21 PBORCA_CBBUILDERROR(部署失败,错误)。此外,回调函数(BuildErrProc)没有被调用。我怎样才能克服这个问题? BTW我正在使用WindowsXP-32bit,Powerbuilder 11.2,EAServer 5.5,QT-4.8.0开源vs2010。Powerbuilder ORCA API部署
void __stdcall BuildErrProc(LPVOID lpUserData) {
PPBORCA_BLDERR blderr = (PPBORCA_BLDERR)lpUserData;
QString s;
s = QString::fromStdWString(blderr->lpszMessageText);
QMessageBox::information(0,"",s);
}
int WINAPI BuildProject(QString currentApplLibName,QString currentApplName,QString projectLibName,QString projectName,QStringList libraryNames)
{
PBORCA_BLDPROC fpBuildErrProc;
PPBORCA_BLDERR pBldErrData;
fpBuildErrProc = (PBORCA_BLDPROC) BuildErrProc;
pBldErrData = (PPBORCA_BLDERR) new PBORCA_BLDERR;
memset(pBldErrData, 0x00, sizeof(PBORCA_BLDERR));
HPBORCA hORCASession;
hORCASession = SessionOpen();
printf("Setting library list..\n");
LPTSTR* pLibNames = new LPTSTR[libraryNames.size()];
for(int i=0;i<libraryNames.size();i++) {
pLibNames[i]=(LPTSTR)libraryNames.at(i).utf16();
}
int r = PBORCA_SessionSetLibraryList(hORCASession, pLibNames, libraryNames.size());
if(r==0) {
printf("Library list OK.\n");
QMessageBox::information(0,"",currentApplName);
r = PBORCA_SessionSetCurrentAppl(hORCASession,(LPTSTR)currentApplLibName.utf16(),(LPTSTR)currentApplName.utf16());
if(r==0) {
printf("Setting current appl OK.\n");
r = PBORCA_BuildProject(hORCASession,(LPTSTR)projectLibName.utf16(),(LPTSTR)projectName.utf16(),fpBuildErrProc,pBldErrData);
if (r==0) {
printf("Building current prj OK.\n");
} else {
printf("Build FAILURE:%d\n",r);
}
} else {
printf("Current appl FAILURE.\n");
}
} else {
printf("Library list FAILURE:%d\n",r);
}
SessionClose(hORCASession);
return r;
}
答
我解决了它。图书馆清单是错误的。当我设置正确的lib列表时,它成功地构建了项目。
我解决了它。图书馆清单是错误的。当我设置正确的lib列表时,它成功地构建了项目。 – misa 2012-01-12 16:17:55
您可能想将其作为下面的答案,以便您的问题显示为已回答。 – Slapout 2012-01-31 17:44:33