سلام
من می خوام برنامه ای بنوسیم که
فایل cpp رو از کاربر بگیره و تبدیلش کنه
به exe و به کاربر تحویلش بده.
dll هست که این کار رو انجام بده
یا اصلا باید چکار کنم؟
ممنون
سلام
من می خوام برنامه ای بنوسیم که
فایل cpp رو از کاربر بگیره و تبدیلش کنه
به exe و به کاربر تحویلش بده.
dll هست که این کار رو انجام بده
یا اصلا باید چکار کنم؟
ممنون
سلام،برنامه هایی وجود داره به نام کامپایلر که این کار را انجام میدن
مثل ++visual c یا ++g یا clang یا turbo c
چجور تو برنامم ازش استفاده کنم؟
لازم نیست شما اون برنامه را بنویسید چون اونها قبلا نوشته شده و شما فایل cpp را به اونها بدید خودشون بهتون exe تحویل میدن
من خودم یه جورایی میخوام کامپایلر درست کنم برا همین میخوام از یک واسط که کامپایلر C++ هست استفاده کنم
اول زبان مورد نظرمو برای سی پلاس پلاس ترجمه میکنم بعد سی پلاس پلاس برام کامپایل میکنه
راهنماییم کن ممنون
درست کردن کامپایلر به این سادگی نیست. نمیدونم به چه زبانی برنامه نویسی می کنید. حالا مثلا برای اجرای ++g این جور عمل می کنیم
#include <stdlib.h>
int main()
{
system("g++ myfile.cpp");
}
فک کنم منظورمو خوب متوجه نشدین
من یک گرامر دارم که توش مثلا in a داره و این تو C++ یعنی
int a;
cin>>a;
حالا من فایل تکستی که توش برنامم به زبان بالا (in a) هست رو باز میکنم و بعد کد ها رو تبدیل به کدهای C++ می کنم وبعد برنامه رو کامپایل و ذخیرش میکنم
برا همین می خوام تو خود برنامه کدو بگیره و بعد فایل اجرایی شو بهم بده.
با چی باز می کنید؟
چه جوری این کار را می کنید؟ برنامه ای برای این کار نوشتید؟ به چه زبانی؟و بعد کد ها رو تبدیل به کدهای C++ می کنم
با چی کامپایل می کنید؟وبعد برنامه رو کامپایل و ذخیرش میکنم
کدوم برنامه؟ به چه زبانی؟برا همین می خوام تو خود برنامه کدو بگیره و بعد فایل اجرایی شو بهم بده.
ابتدا کدی که تبدیل شده را در یک فایل cpp ذخیره می کنید و با همون دستور به ++g می دهید
من الان با ویژوال استدیو کار به زبان C++ کار میکنم
تو برنامم می نویسم مثلا فایل text.txt رو از دسکتاپ با fopen باز کنه
بعد محتوای توشو می خونه مثلا توش نوشته:(زبونش من درآوردیه )
in a
in b
a=a+b
out a
حالا خط به خط براش به زبان C++ معادل میسازه
(که من بهش گفتم معادلش چی میشه)
که در نهایت تبدیل میشه به :
int a;
cin>>a;
int b;
cin>>b;
a=a+b;
cout<<a;
حالا میخوام برنامه خودش این کدی که تبدیلش کرده رو برام کامپایل هم کنه
و بعد مثلا به نام 1.exe توی دکستاپ ذخیرش کنه.
چجوری انجام بدم.
آخرین ویرایش به وسیله ahmad_201494 : پنج شنبه 30 بهمن 1393 در 15:08 عصر
تست نکردم اما قاعدتا باید یک فایل exe به نام myfile.exe در همون فولدری که برنامه تبدیل قرار داره ایجاد بشه
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main ()
{
ofstream myfile;
myfile.open ("myfile.cpp");
myfile << "#include <iostream>" << "\n";
myfile << "using namespace std;"<< "\n";
myfile << "int main()"<< "\n";
myfile << "{"<< "\n";
myfile << "int a;"<< "\n";
myfile << "cin>>a;"<< "\n";
myfile << "int b;"<< "\n";
myfile << "cin>>b;"<< "\n";
myfile << "a=a+b;"<< "\n";
myfile << "cout<<a;"<< "\n";
myfile << "return 0;"<< "\n";
myfile << "}"<< "\n";
myfile.close();
system("cl /EHsc myfile.cpp");
return 0;
}
این فقط یک فایل به نام myfile.cpp کنار exe برنامه درست کرد.
منظورمم همون بود که exe اونو (همونایی که نوشتید)کنار exe برنامه درست کنه.
قبل از return 0 این دستور را بذارید و ببینید چه پیغامی میده
system("pause");
Picture1.png
بازم کنارش همون فایلو درست کرد.
پیغام به این معنا هست که کامپایلر ویژوال استادیو در مسیر قرار نداره
در این دو لینک توضیح داده:
http://stackoverflow.com/questions/6...-dll-not-found
http://stackoverflow.com/questions/8...ternal-command
یا اینکه ابتدا از منوی استارت در قسمت ویژوال استادیو آیکون مربوط به اجرای ویژوال از طریق command prompt را پیدا و اجرا کنید و برنامه را از اون جا (محیط کنسول) اجرا کنید
یا مسیر فولدر ویژوال استادیو را به متغیر محیطی PATH ویندوز معرفی کنید ( در قسمت environment variables )
که در اون دو لینک توضیح داده
اینم مربوط به زمانی هست که برنامه رو از داخل ویژوال استدیو اجرا میکنم.
Picture2.png
در منوی استارت گزینه Visual Studio Command Prompt را پیدا و اجرا کنید از اونجا دنبال کنید
اگه نبود در فولدر ویژوال استادیو فایل vcvars32.bat را اجرا کنید
توضیح داده:
http://stackoverflow.com/questions/4...d-include-file
يک راه ديگه اينه cygwin رو دانلود کنيد بعد نصب کنيد حالا به سادگی ميتونيد يک فايل cpp رو به وسيله کامپايلر ++G کامپايل کنيد
به اين صورت:
[مسير خروجی برنامه] o- [مسير فايل cpp] [مسير فايل ++g]
مثال:
D:\cygwin-b20\H-i586-cygwin32\bin\g++.exe "c:\test\main.cpp" -o "c:\test\myProg.exe"
نکته مهم اينه که فايل cygwin1.dll هم بايد کنار برنامه اصليت باشه هم کنار خروجی توليد شده