1

ドキュメントに記載されているように、c++ ファイルで関数を宣言し、.ned ファイルで呼び出しました。しかし、次のエラーが発生します。

error:expected constructor, destructor, or type conversion before ‘(’ token Define_Function(dijkstra, 1);

以下は私のc++ファイルです。

#include <omnetpp.h>
#include "stdio.h"
#include "Node.h"
#include "cdelaychannel.h"

Define_Function(dijkstra, 1);
double dijkstra(double start = 1){
....
....
}

ネットワーク記述ファイルで、関数を呼び出しました。

package myproject;

@license(LGPL);
dijkstra(1.0);

エラーが発生するのはなぜですか?

4

1 に答える 1

3

NED ファイルで使用する関数を作成する場合は、OMNeT++ マニュアルの説明に従って作成する必要があります。例は次のとおりです。

static cNEDValue ned_foo(cComponent *context, cNEDValue argv[], int argc) 
  int a = (long) argv[0];   
  int b = (long) argv[1];   
  return a*b; 
}

Define_NED_Function(ned_foo,"int ned_foo(int a, int b)");
于 2015-04-24T10:27:38.517 に答える