gpt4 book ai didi

opnet与c程序的连接

转载 作者:行者123 更新时间:2023-11-30 17:10:08 26 4
gpt4 key购买 nike

我写了这个项目,但有一些错误

#include "stdafx.h"
#include "C:\OPNET\14.5.A\sys\include\esa.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int total_pk_num = 0;
int total_size = 0;
static void notification_callback(void *state, double time, void *value);
int main(int argc, char **argv)
{
EsaT_State_Handle esa_handle;
int evt_num;
double ret_time;
EsaT_Interface *interfaces;
EsaT_Interface inf_size;
EsaT_Interface inf_desc;
int num;
int status;
int i = 0;
char desc[256];

Esa_Main(argc, argv, ESAC_OPTS_NONE);
Esa_Init(argc, argv, ESAC_OPTS_NONE, &esa_handle);
Esa_Load(esa_handle, ESAC_OPTS_NONE);
Esa_Interface_Group_Get(esa_handle, &interfaces, &num);

inf_size = interfaces[0];
inf_desc = interfaces[1];

Esa_Interface_Callback_Register(esa_handle, &status, inf_size, notification_callback, 0, 0);

while(1)
{
printf("External program\n");

Esa_Execute_Until(esa_handle, &status, 10*++i,
ESAC_UNTIL_INCLUSIVE, &ret_time, &evt_num);

if(status == ESAC_STATUS_TERMINATION)
{
printf("Simulation finished\n");
break;
}

Esa_Interface_Value_Get(esa_handle, &status, inf_desc, &desc);
printf("%s\n\n\n", desc);

sprintf(desc, "No. of packets: %d - time: %f (set in external program)",
total_pk_num, ret_time);
Esa_Interface_Value_Set(
esa_handle, &status, inf_desc, ESAC_NOTIFY_IMMEDIATELY, &desc);
}

return 0;
}


void notification_callback(void *state, double time, void *value)
{
printf("Total packet number: %d, total size: %d bits\n",
++total_pk_num, total_size += *(int *)value);

return;
}

*这个程序有很多问题,虽然这段代码没有任何错误,因为我是从书上复制的。我尝试用 C 程序连接 opnet 时出现此错误 *

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(6361): error C2146: syntax error : missing ';' before identifier 'ContextRecord'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(6361): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(6361): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12983): error C2065: 'PCONTEXT' : undeclared identifier
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): error C2146: syntax error : missing ')' before identifier 'ContextRecord'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): warning C4229: anachronism used : modifiers on data are ignored
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): error C2182: 'RtlCaptureContext' : illegal use of type 'void'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): error C2491: 'RtlCaptureContext' : definition of dllimport data not allowed
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): error C2059: syntax error : ')'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(13372): error C2143: syntax error : missing ';' before '__stdcall'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(13372): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(13376): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(14982): error C3861: '__readfsdword': identifier not found
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(1048): error C2146: syntax error : missing ';' before identifier 'LPCONTEXT'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(1048): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(1048): error C2378: 'PCONTEXT' : redefinition; symbol cannot be overloaded with a typedef
1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(13372) : see declaration of 'PCONTEXT'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(1048): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(3610): error C2061: syntax error : identifier 'PCONTEXT'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(4449): error C2061: syntax error : identifier 'LPCONTEXT'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(4457): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(4457): error C2143: syntax error : missing ',' before '*'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(15112): error C2143: syntax error : missing ';' before '__stdcall'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(15112): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(15116): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\ahmed\documents\visual studio 2010\projects\test_1\test_1\test_1.cpp(37): error C2664: 'Esa_Interface_Callback_Register' : cannot convert parameter 4 from 'void (__cdecl *)(void *,double,void *)' to 'EsaT_Interface_Callback_Proc'
1> None of the functions with this name in scope match the target type
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.70
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

最佳答案

您的源文件是 .cpp,但您正在编写 C 代码。将文件名更改为 test_1.c

关于opnet与c程序的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33018755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com