3

我的 node.js 代码是这样做的:

var MyMQ = require( './build/release/mqconn' ) ;
var MyQmgrName = 'QM_CNT' ; // req.params.qmgrname ; 
MyMQ.connect ( MyQmgrName, function ( err, result ) { 

我的 C++ 代码(uning nan)想要接收第一个字符串参数:

NAN_METHOD( MQ_Connect ) {

    NanScope();
    Local<Value> szQMN( args[ 0 ] );
    printf( "(cc)>>>> qmn [%s].\n", szQMN ) ;

...但我得到的是垃圾。

关于我做错了什么的任何线索?塞巴斯蒂安。

4

1 回答 1

4

首先,您通常应该验证您的论点。然后你可以通过调用参数来获得一个字符串ToString()。例如:

NAN_METHOD(MQ_Connect) {
  NanScope();

  if (args.Length() > 0) {
    if (args[0]->IsString()) {
      String::Utf8Value str(args[0]->ToString());
      printf("(cc)>>>> qmn [%s].\n", (const char*)(*str));
    }
  }
于 2015-06-19T03:29:22.830 回答