有人用过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;
}