PDA

View Full Version : سوال: خطای win 32 در هنگام اجرای برنامه



dele_ghamgin_2008
سه شنبه 09 دی 1393, 15:49 عصر
سلام . من نرم افزاری ساختم که بر روی ویندوز خودم به درستی اجرا می شود . وقتی این نرم افزار را بر روی سیستم دیگری کپی می کنم نرم افزار اجرا می شود ولی اگر ویندوز را ریست کنم و بخواهم مجدد نرم افزار را اجرا کانم با خطای زیر مواجه می شوم . ضمناً ویندوز را هم چندین بار تعویض کردم ولی این مشکل رفع نگردید . اگر مجدد نرم افزار را از سیستم اولیه کپی کنم روی همین ویندوز درست عمل می کند ولی باز هم پس از ری استار همین ویندوز مجدد از کار می افتد . لذا مجبورم برای اجرا در این سیستم هر بار برنامه را کپی کنم. لطفاً راهنمایی فرمایید. با تشکر
127025

shahryari
سه شنبه 09 دی 1393, 16:03 عصر
فایل اجرایتون خراب شده و بعنوان برنامه ویندوزی شناخته نمیشه

dele_ghamgin_2008
چهارشنبه 10 دی 1393, 11:22 صبح
فایل اجرایتون خراب شده و بعنوان برنامه ویندوزی شناخته نمیشه

خب دلیل چیست ؟ باید چیکار کنم که این اتفاق بر سرش نیوفته !؟

erfan_urchin
پنج شنبه 11 دی 1393, 13:49 عصر
شما برو تو منوی استارت و Command Prompt رو run as administrator کن و کد زیر رو بنویس و صبر کن تا عملیات تموم بشه

sfc/scannow
ببین درست میشه یا نه

samadblaj
پنج شنبه 11 دی 1393, 14:03 عصر
سلام؛
تنها دلیل این خطا not a valid Win32 application قرار ندادن برنامه روی Any CPU می باشد.
طبق عکس پیش برید نتیجه میدهد.

dele_ghamgin_2008
جمعه 12 دی 1393, 23:01 عصر
سلام؛
تنها دلیل این خطا not a valid Win32 application قرار ندادن برنامه روی Any CPU می باشد.
طبق عکس پیش برید نتیجه میدهد.

وقتی این تنظیمات شما رو روی سیستم خودم اعمال می کنم . و میخواهم با کلیک روی باتن دستور زیر رو اجرا کنم ، وارد catch میشه ولی اگر روی همون x86 باشه به درستی عمل می کنه. مشکل چیست ؟
private void load() {
try
{
//قابلیت نمایش عکس در اینترنت اکسپلورر رو غیر فعال میکنه
RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main", true);
RegKey.SetValue("Display Inline Images", "no");


string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\dbs.mdb";


string sql = @"SELECT name FROM zirna ";


OleDbConnection conn = new OleDbConnection(connString);
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
DataSet dt = new DataSet();
da.Fill(dt, "zirna");
DataTable db = dt.Tables["zirna"];


LstSites.DataSource = db;
LstSites.DisplayMember = "name";
}
catch { MessageBox.Show("سیستم به بانک اطلاعاتی وصل نشده است"); this.Dispose(); }
}

samadblaj
شنبه 13 دی 1393, 00:15 صبح
به دو نکته باید توجه کرد یک شما برای دیدن خطا Try Catch رو بردارید تا بتوانید مقدار دقیق خطا رو ببینید.
و نکته دوم شما از یک روش غیر اصولی استفاده کردید شما با try catch مشکلات رو پنهان کردید .
به عنوان مثال یک شرط قرار دهید در صورت وجود به دستور بعدی رود هر چند به هر صورت ادامه میدید.
RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(@"Software\Microso ft\Internet Explorer\Main", true);
RegKey.SetValue("Display Inline Images", "no");
و با تغییر به Any CPU نباید مشکلی به وجود بیاید حداقل در این دستور.
و در پایان بعد از قرار دادن روی Any CPU پیشنهاد میکنم یک بار Build>>Rebuild کنید.

RIG000
شنبه 13 دی 1393, 00:18 صبح
روی x64 بیلد کن و ببره روسیستم طرف اجرا کن.

RIG000
شنبه 13 دی 1393, 00:21 صبح
http://blogs.msdn.com/b/smondal/archive/2012/10/15/setup-exe-is-not-a-valid-win32-application.aspx

dele_ghamgin_2008
شنبه 13 دی 1393, 21:00 عصر
به دو نکته باید توجه کرد یک شما برای دیدن خطا Try Catch رو بردارید تا بتوانید مقدار دقیق خطا رو ببینید.
و نکته دوم شما از یک روش غیر اصولی استفاده کردید شما با try catch مشکلات رو پنهان کردید .
به عنوان مثال یک شرط قرار دهید در صورت وجود به دستور بعدی رود هر چند به هر صورت ادامه میدید.
RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(@"Software\Microso ft\Internet Explorer\Main", true);
RegKey.SetValue("Display Inline Images", "no");
و با تغییر به Any CPU نباید مشکلی به وجود بیاید حداقل در این دستور.
و در پایان بعد از قرار دادن روی Any CPU پیشنهاد میکنم یک بار Build>>Rebuild کنید.

ترای و کش رو برداشتم ولی برنامه اجرا میشه ، ولی این دستور رو اجرا نمیشه واسه برنامه .

dele_ghamgin_2008
شنبه 13 دی 1393, 21:01 عصر
روی x64 بیلد کن و ببره روسیستم طرف اجرا کن.

فرقی نکرد . مثل همون any cpu خطا میده

dele_ghamgin_2008
شنبه 13 دی 1393, 21:01 عصر
http://blogs.msdn.com/b/smondal/archive/2012/10/15/setup-exe-is-not-a-valid-win32-application.aspx

میشه لطفاً به زبان واضح بگید که باید چه کنم !؟

Mosafers
شنبه 13 دی 1393, 21:17 عصر
ترای و کش رو برداشتم ولی برنامه اجرا میشه ، ولی این دستور رو اجرا نمیشه واسه برنامه .









کدوم دستور اجرا نمیشه؟

dele_ghamgin_2008
یک شنبه 14 دی 1393, 16:11 عصر
کدوم دستور اجرا نمیشه؟

دستوری که در بالا اشاره کردم :

OleDbConnection conn = newOleDbConnection(connString); OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
DataSet dt = new DataSet();
da.Fill(dt, "zirna");
DataTable db = dt.Tables["zirna"];

dele_ghamgin_2008
سه شنبه 16 دی 1393, 15:35 عصر
شما برو تو منوی استارت و Command Prompt رو run as administrator کن و کد زیر رو بنویس و صبر کن تا عملیات تموم بشه

sfc/scannow
ببین درست میشه یا نه

خیر درست نشد

dele_ghamgin_2008
پنج شنبه 18 دی 1393, 18:30 عصر
خیر درست نشد

دوستان اگر کسی اطلاعاتی در این زمینه دارد لطفاً راهنمایی کند به ما تا مشکل ما حل شود.

dele_ghamgin_2008
چهارشنبه 26 فروردین 1394, 11:26 صبح
چهار ماه از طرح سوال میگذرد ولی متاسفانه هنوزم مشکل من حل نشده . دوستان اگر اطلاعاتی دارن لطفا راهنمایی کنن . هر برنامه ای میسازم و روی اون سیستم میبرم همین اتفاق براش می افته . با اینکه برای اون سیستم ویندوز هم عوض کردم باز همین شد.

pari joon
جمعه 10 مهر 1394, 07:23 صبح
سلام؛
تنها دلیل این خطا not a valid Win32 application قرار ندادن برنامه روی Any CPU می باشد.
طبق عکس پیش برید نتیجه میدهد.


خوب از کجا بریم عوض کنیم cpu any