فراخوانی برنامه دیگر در مد
با سلام
من قصد دارد یه برنامه بنویسم که بخشی از اون باید یه برنامه رو با آرگمان های ورودی (فرضا به فرم a.xxx arg1 arg2) فراخوانی کنم
قطعه کدی که نوشتم به فرم زیر هست :
#include <windows.h>
#include <conio.h>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
template <typename T>
string NumberToString(T pNumber)
{
ostringstream oOStrStream;
oOStrStream << pNumber;
return oOStrStream.str();
}
string Run(int i)
{
int X,Y;
if(i == 1)
{
X = 10;
y = 10;
}
else
{
X = 0;
Y = 20;
}
return "a.xxx " + NumberToString(X) + " " + NumberToString(Y);
}
void main()
{
system(Run(1));
}
خطای زیر رو نشون میده
Could not find a match for 'system(string)'
برنامه a.xxx در کنار فایل هست. دستور فرضا به فرم a.xxx arg1 arg2 نیز از طریق ویندوز و کنسول قابل اجرا هست
این برنامه رو با Borland C++ Complier 5.5 نوشتم
لطفا می توانید مرا راهنمایی کنید
با تشکر
نقل قول: فراخوانی برنامه دیگر در مد
رشته ای که return میکنی یه بار print کن ببین همه چیز درسته هست..
میتونی با تابع system یه فایل دیگه ای رو اجرا کنی اما بهتر هست که یه پروسس بسازی و بعد فایل مورد نظرت و اجرا کنی.
اگر داخل ویندوز هستی با تابع CreateProcess میتونی اینکارو انجام بدی و اگر لینوکس هستی با fork و exec پروسس جدید بسازی و فایل تو اجرا کنی.
البته فکر میکنم میشه از توابع POSIX داخل ویندوز استفاده کنی اینجا رو نگاه بنداز
نقل قول: فراخوانی برنامه دیگر در مد
نقل قول:
نوشته شده توسط
mgupload
با سلام
من قصد دارد یه برنامه بنویسم که بخشی از اون باید یه برنامه رو با آرگمان های ورودی (فرضا به فرم a.xxx arg1 arg2) فراخوانی کنم
قطعه کدی که نوشتم به فرم زیر هست :
#include <windows.h>
#include <conio.h>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
template <typename T>
string NumberToString(T pNumber)
{
ostringstream oOStrStream;
oOStrStream << pNumber;
return oOStrStream.str();
}
string Run(int i)
{
int X,Y;
if(i == 1)
{
X = 10;
y = 10;
}
else
{
X = 0;
Y = 20;
}
return "a.xxx " + NumberToString(X) + " " + NumberToString(Y);
}
void main()
{
system(Run(1));
}
خطای زیر رو نشون میده
Could not find a match for 'system(string)'
برنامه a.xxx در کنار فایل هست. دستور فرضا به فرم a.xxx arg1 arg2 نیز از طریق ویندوز و کنسول قابل اجرا هست
این برنامه رو با Borland C++ Complier 5.5 نوشتم
لطفا می توانید مرا راهنمایی کنید
با تشکر
سلام
1- رشته ارسال برای اجرا اشتباه هستش.بین اسم برنامه و اولین پارامتر اون باید یک space باشه. که شما رشته ارسالی رو بدون اون فاصله ی اول ساختی.
2- a.xxx چیه دیگه ؟ xxx باید حتما پسوند فایل اجرایی سیستم عامل باشه. مثل: a.exe
نکته :
اون تابع NumberToString بیهوده هستش.این امکان رو خود runtime داره