注册 登录
编程论坛 C++教室

谁可以帮我将以下C++程序译成C语言程序,谢谢喽!(本人没学过C++)

清香傅天心 发布于 2016-05-20 16:13, 5112 次点击
// vissim_c.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#define _WIN32_DCOM
#include <iostream>
using namespace std;
// import of all VISSIM COM server interfaces
#import "c:\\Program Files (x86)\\PTV_Vision\\VISSIM540\\Exe\\vissim.exe" // modify
path to your needs
using namespace VISSIM_COMSERVERLib;
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr;
cout << "Client: Calling CoInitialize()" << endl;
hr = CoInitialize(NULL);
if (FAILED(hr)) return 1;
try {
// Create the Vissim object (connection to VISSIM COM server)
cout << "Client: Creating a Vissim instance with the smartpointer IVissimPtr" <<
endl;
IVissimPtr spVissim(__uuidof(Vissim));
// Create a Simulation object
cout << "Client: Calling GetSimulation()" << endl;
// read network and layout
spVissim -> LoadNet ("c:\\vissim_c\\vissim_files\\c_test.inp", 0);
spVissim -> LoadLayout ("c:\\vissim_c\\vissim_files\\vissim.ini");
// initialize simulations
cout << "Client: Setting simulations" << endl;
// run simulations
ISimulationPtr spSim;
spSim = spVissim -> GetSimulation();
cout << "Client: Starting simulation" << endl;
spSim -> RunContinuous();
}
catch (_com_error &error) {
cout << (char*)(error.Description()) << endl;
}
cout << "Client: Calling CoUninitialize()" << endl;
CoUninitialize ();
return 0;
}
6 回复
#2
rjsp2016-05-20 16:28
这是COM,不是标准的C++语法,基本上没法改。(即使有人能改,COM那一套垃圾机制也能把人烦死)
#3
rjsp2016-05-20 16:29
我建议你还是用C++调用vissim控件,但封装成一个标准dll的形式,以供C程序调用
#4
清香傅天心2016-05-20 17:18
回复 3楼 rjsp
好深奥,这个程序是VISSIM软件仿真时二次开发需要调用的的文件
#5
清香傅天心2016-05-20 17:19
回复 3楼 rjsp
你说的封装这块儿完全不懂了,这个好弄吗?复不复杂?
#6
rjsp2016-05-20 19:20
以下是引用清香傅天心在2016-5-20 17:19:53的发言:
你说的封装这块儿完全不懂了,这个好弄吗?复不复杂?

你还可以找找是不是有非com的调用方式,Google吧,没用过,帮不了你
#7
KZ22099981262016-05-20 22:20
我学过c,但是看不懂你这个..
1