我正在尝试从 VMS 上的 C++ 程序传递值。
$DESCRIPTOR( lname, (char*) "A" );
$DESCRIPTOR( lvalue, (char *) "Hello World" );
lib$set_logical( &lname, &lvalue );
lib$set_symbol (&lname,&lvalue);
它应该工作吗?如果不是,我该如何纠正?
如何检查返回值?
如果成功,如何检查环境?
如果有效,是否可靠? (不依赖于权限等)。
最佳答案
没有。查看 $DESCRIPTOR 是如何定义的,在 descrip.h 中:
#define $DESCRIPTOR(name,string) struct dsc$descriptor_s name = { sizeof(
字符串)-1,DSC$K_DTYPE_T,DSC$K_CLASS_S,字符串
在您的示例中,lname 和 lvalue 的第一个元素都将包含 3,从 (char*) 的大小导出,但是预期的是字符串的长度,从字符数组的大小导出。
关于c++ - Openvms C++ - 如何将值传递给环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15116452/