PDA

View Full Version : مشکل عجیب در اجرا شدن فایل اجرایی برنامه



mehran901
یک شنبه 17 آذر 1392, 21:16 عصر
سلام بردوستان ، تصویری که ضمیمه کردم پیغام خطایی هست که فایل اجرایی برنامه موقع اجرا شدن در ویندوز xp به کاربر نشون میده ، علتش رو نمیدونم .. کسی میتونه راهنمایی کنه ؟

تصویر ضمیمه شده

113684

mehran901
یک شنبه 17 آذر 1392, 21:17 عصر
نکته ای که هست ی برنامه ساده تبدیل تاریخ هست ... سورسشم به شکل زیر هست :




void gregorian_to_jalali(/* output */ int *j_y, int *j_m, int *j_d, /* input */ int g_y, int g_m, int g_d);
void jalali_to_gregorian(/* output */ int *g_y, int *g_m, int *g_d,/* input */ int j_y, int j_m, int j_d);


#include <iostream>//<iostream.h>
#include <cstdlib>//<stdlib.h>
#include <ctime>//<time.h>

int g_days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int j_days_in_month[12] = {31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29};
const char *j_month_name[13] = {"",
"Farvardin", "Ordibehesht", "Khordad",
"Tir", "Mordad", "Shahrivar",
"Mehr", "Aban", "Azar",
"Dey", "Bahman", "Esfand"};

void gregorian_to_jalali(int *j_y, int *j_m, int *j_d,
int g_y, int g_m, int g_d)
{
int gy, gm, gd;
int jy, jm, jd;
long g_day_no, j_day_no;
int j_np;

int i;

gy = g_y-1600;
gm = g_m-1;
gd = g_d-1;

g_day_no = 365*gy+(gy+3)/4-(gy+99)/100+(gy+399)/400;
for (i=0;i<gm;++i)
g_day_no += g_days_in_month[i];
if (gm>1 && ((gy%4==0 && gy%100!=0) || (gy%400==0)))

++g_day_no;
g_day_no += gd;

j_day_no = g_day_no-79;

j_np = j_day_no / 12053;
j_day_no %= 12053;

jy = 979+33*j_np+4*(j_day_no/1461);
j_day_no %= 1461;

if (j_day_no >= 366) {
jy += (j_day_no-1)/365;
j_day_no = (j_day_no-1)%365;
}

for (i = 0; i < 11 && j_day_no >= j_days_in_month[i]; ++i) {
j_day_no -= j_days_in_month[i];
}
jm = i+1;
jd = j_day_no+1;
*j_y = jy;
*j_m = jm;
*j_d = jd;
}
void jalali_to_gregorian(int *g_y, int *g_m, int *g_d,
int j_y, int j_m, int j_d)
{
int gy, gm, gd;
int jy, jm, jd;
long g_day_no, j_day_no;
int leap;

int i;

jy = j_y-979;
jm = j_m-1;
jd = j_d-1;

j_day_no = 365*jy + (jy/33)*8 + (jy%33+3)/4;
for (i=0; i < jm; ++i)
j_day_no += j_days_in_month[i];

j_day_no += jd;

g_day_no = j_day_no+79;

gy = 1600 + 400*(g_day_no/146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
g_day_no = g_day_no % 146097;

leap = 1;
if (g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
{
g_day_no--;
gy += 100*(g_day_no/36524); /* 36524 = 365*100 + 100/4 - 100/100 */
g_day_no = g_day_no % 36524;

if (g_day_no >= 365)
g_day_no++;
else
leap = 0;
}

gy += 4*(g_day_no/1461); /* 1461 = 365*4 + 4/4 */
g_day_no %= 1461;

if (g_day_no >= 366) {
leap = 0;

g_day_no--;
gy += g_day_no/365;
g_day_no = g_day_no % 365;
}

for (i = 0; g_day_no >= g_days_in_month[i] + (i == 1 && leap); i++)
g_day_no -= g_days_in_month[i] + (i == 1 && leap);
gm = i+1;
gd = g_day_no+1;

*g_y = gy;
*g_m = gm;
*g_d = gd;
}

int main(void)
{
int y, m, d;
time_t bin_time;
struct tm *br_time;

time(&bin_time);
br_time = localtime(&bin_time);

gregorian_to_jalali(&y, &m, &d,1900+br_time->tm_year, 1+br_time->tm_mon, br_time->tm_mday);

printf("Current Jalali date: %d %s %d\n", d, j_month_name[m], y);


std::cout<<"Tarikhe Emrooz: "<< d<<" "<< j_month_name[m] <<" "<<y<<std::endl;
std::cin.get();
return 0;
}

sr2m72
یک شنبه 17 آذر 1392, 22:18 عصر
سلام بردوستان ، تصویری که ضمیمه کردم پیغام خطایی هست که فایل اجرایی برنامه موقع اجرا شدن در ویندوز xp به کاربر نشون میده ، علتش رو نمیدونم .. کسی میتونه راهنمایی کنه ؟

تصویر ضمیمه شده

113684

سلام دوست گرامی
روی فایل کلیک راست کن و Run as administrator رو بزن بینم اجرا میشه یا نه؟؟

موفق باشید//

mehran901
یک شنبه 17 آذر 1392, 23:24 عصر
تشکر ، ویندوز مقصد اکس پی هست و در یوزر ادمین اجرا شده گویا

امیر مهرشاد
دوشنبه 07 مهر 1393, 21:03 عصر
تشکر ، ویندوز مقصد اکس پی هست و در یوزر ادمین اجرا شده گویا

uac رو غیر فعال کن و به کل پوشه برنامتم دسترسی full بده ترجیحا در یک درایو غیر از ویندوز بزارید

negative60
دوشنبه 07 مهر 1393, 23:27 عصر
ويندوز ايشون xp هست و خبری از uac نيست.
برنامه رو تو حالت Release کامپايل کنيد بعد انتقال بديد به ويندوز xp. سعی کنيد هيچ وقت خروجی Debuge رو به عنوان برنامه اصلی استفاده نکنيد

حامد مصافی
چهارشنبه 09 مهر 1393, 21:00 عصر
روی فایل راست کلیک، Properties، و گزینه Unlock
از جواب نداد به احتمال قوی آنتی‌ویروس جلوی اجرای فایل رو میگیره

fahimeh1512
شنبه 19 مهر 1393, 14:23 عصر
این پست که خیلی قدیمیه!
ویندوز اکس پی هم (فکر کنم سرویس پک سه) uac داره مشکل این دوستمون هم همون امتیاز مدیریتیه ظاهرا چون فایل تو پوشه ویندوزشه

negative60
یک شنبه 20 مهر 1393, 00:35 صبح
در هر صورت مشکل ايشون تا به حال حل شده ديگه! و نيازی به ادامه نيست اما بهتره که بدونيد ويندوز UAC xp نداره (http://en.wikipedia.org/wiki/User_Account_Control) همچنين فايل تو مسير پوشه يوزر هست نه ويندوز.