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; 
} 
+0

我解决了它。图书馆清单是错误的。当我设置正确的lib列表时,它成功地构建了项目。 – misa 2012-01-12 16:17:55

+0

您可能想将其作为下面的答案,以便您的问题显示为已回答。 – Slapout 2012-01-31 17:44:33

我解决了它。图书馆清单是错误的。当我设置正确的lib列表时,它成功地构建了项目。