有人用过PBNI吗,我使用VC调有PB的时候CreateSession总是PBX_E_GET_PBVM_FAILED

zcy75 2008-01-12 03:40:13

运行目录包含了PB9的运行环境
那位大侠有成功调有PB的能不能把你的VC工程放上来,我怀疑是编译连接的问题
或者帮助我测试一下
不胜感激

源代码如下:

#include "pbext.h"
#include "stdio.h"

typedef PBXEXPORT PBXRESULT (*P_PB_GetVM)(IPB_VM** vm);

int main(int argc, char* argv[])
{
HINSTANCE hinst = LoadLibrary("pbvm90.dll");
P_PB_GetVM getvm = (P_PB_GetVM)GetProcAddress(hinst, "PB_GetVM");
IPB_VM* vm = NULL;
getvm(&vm);
static const char *liblist[] = { "trypbni.pbl" };
IPB_Session* session = NULL;
long ll_re;
ll_re = (long)(vm->CreateSession("trypbni", liblist, 1, &session));
if( ll_re != PBX_OK)
{
printf("Err %d \n" , ll_re);
return -1;
}
printf("OK \n");
pbgroup group = session->FindGroup("n_ben", pbgroup_userobject);
pbclass clz = session->FindClass(group, "n_ben");
pbmethodID mid = session->GetMethodID(clz, "foo", PBRT_FUNCTION, "IS");
pbobject obj = session->NewObject(clz);
PBCallInfo ci;
session->InitCallInfo(clz, mid, &ci);
ci.pArgs->GetAt(0)->SetString("Calling PowerScript from C++");
session->InvokeObjectFunction(obj, mid, &ci);
session->FreeCallInfo(&ci);
session->Release();
FreeLibrary(hinst);
return 0;
}
...全文
97 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcy75 2008-01-12
  • 打赏
  • 举报
回复
CreateSession必须用AppName,不能随便用

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧