مشاهده نسخه کامل
: error در c++.net
sara_she
06-06-2007, 12:36
خطاي زير به چه دليل به وجود مي آيد:
Projects\objectarx_project\Step01_win\HelloWorld.c pp(330): error C2352: illegal call of non-static member function
با تشكر
سلام
می تونین خود کد رو هم بنویسین؟
sara_she
09-06-2007, 09:38
فكر كنم به خاطر تعريف كلاس يا تابع تعريف نشده اي براي برنامه است؟
كد رو نمي تونم بذارم .هم اينكه طولاني و پيچيده است و هم اينكه فكر نمي كنم كمكي به حل اين مسئله بكنه
hamidreza_buddy
09-06-2007, 12:25
احتمالاً یک تابع رو با استفاده از اسم کلاس صدا زدید به جای اسم شئ.
مثلاً برای کلاس FileReader اسنکارو کردید: FileReader.Open() در صورتی که باید یک شئ تعریف کنید و با اون تابع رو صدا بزنید.
سلام.
این error میتونه دو تا دلیل داشته باشه.
1-شما از یه متود nonStatic در یه متود Static استفاده کردین.
2- شما از یه متود nonStatic رو خارج از کلاسش به صورت فراخوانی یه متود Static استفاده کردین.
در مورد دوم باید اضافه کنم برای استفاده از یه متود Static نیازی به ساخت یه نمونه از کلاس نیست
در صورتی که برای استفاده از یه عضو غیر Static باید از نمونه کلاس استفاده کنین.
sara_she
11-06-2007, 10:14
سلام
ممنون از همه دوستان
با لطف شما مشكلم حل شد
يه warningدر زمان buildبرام پيش اومده كه نمي دونم بايد بهش توجه كنم يا نه :
warning LNK4243: DLL containing objects compiled with /clr is not linked with /NOENTRY; image may not run correctly
اين warning رو تو help مربوط به vsجستجو كردم و يك سري كار رو كه گفته بود انجام دادم ولي مشكلم رفع نشد
اگه در اين مورد كه اين خطا چرا به وجود مي ياد و چه طور بايد حلش كرد توضيح بدين ممنون مي شم
دوباره سلام.
اگه یادتون باشه خیلی در مورد استفاده از " کد مدیریت شده " و " کد مدیریت نشده " با هم صحبت کردیم.
گفته بودم که تو بعضی از موارد مشکلاتی بوجود میان.
دلیل warning ی که پیش میاد همینه.
اصطلاحی که برای این Dll ها به کار میره ، Mixed Dll هست. این Dll ها ممکنه در بعضی از موارد ، مخصوصا
وقتی سیستم تحت فشار هست ، وقتی میخوان در Process Address بار شن ، دچار مشکل بشن.
بیشتر این مشکل در استفاده از VS2002 و VS2003 پیش میاد.
Compiler های مربوط به 2003 و 2002 میتونن هم native code تولید کنن و هم MSIL که ManagedCode
هست. نحوه اجرای این دو نوع کد با هم فرق میکنن و ممکنه سیستم عامل در بعضی از موارد در تمیز دادن
این دو نوع از هم دچار مشکل بشه. اینم در نظر داشته باشین که native code در سطح ماشین اجرا میشه ،
اما Managed code دوباره توسط Net.
البته نه دقیقا به شکلی که گفتم. چون Net. با Virtual Machine جاوا تفاوت داره و کدها در دو مرحله در اون
Compile میشن.
رفع این مشکل مقداری دردسر داره. (حذف entrypoint و اصلاح کردن component ها و ...)
اما اگه تاحالا شما رو دچار مشکل نکرده میتونین ازش صرفه نظر کنین.
sara_she
12-06-2007, 10:11
سلام
مشكلي كه به نظرم مياد اين warning موجب اون شده رو براتون توضيح ميدم
يه پروژه c++.net با چند فايل هدر و cpp و فرم (resx) رو در نظر بگيريد وقتي با هركدوم از اين فايل ها كار داريد با دبل كليك روي اون از solution اونو باز مي كنيد اين فايل هاي باز شده به صورت tab در بالاي پنجره پروژه نشون داده مي شوند. فرم ها هم كه يه قسمت code و يه designدارند . وقتي من پروژه رو مي بندم اگه فايل هدر فرم هام يا خود فرم(design) باز مونده باشه . بار بعد كه پروژه رو باز مي كنم در هنگام لود فايل هايي كه بار قبل باز موندن سر اين دو گير مي كنه و پروژه اصلا باز نمي شه . همين طور كه پروژه گير كرده دوباره سعي مي كنم اونو باز كنم ايندفعه چون قبلي هنوز لود نشده و روي فرم گير كرده خطاي زير رو به جاي نمايش فرم مي بينم:
the error and then try loading the document a again the error message follows
: Object reference not set to an instance of an object.
كه شامل errorزير است:
Object reference not set to an instance of an object.
اين مشكل چرا به وجود مي ياد و راه حلش چيه
با تشكر
دوباره سلام.این Error به Mixed Dll مربوط نمیشه.اما براش راه حلی وجود داره. که میتونین از Link زیر دنبالش کنین.توضیحاتش خیلی خوب و کامله. البته تا حالا من با چنین مشکلی رو برو نشدم.[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]اگه مشکل همچنان حل نشد ، خبر بدین.
sara_she
13-06-2007, 10:36
لينك رو تصحيح كنيد
من چك كردم ولي اين خطا در مورد استفاده از user control ها نوشته شده در واقع Object reference not set to an instance of an object در مواقع بسياري ايجاد مي شه . مثل همين استفاده از user controlها و يا datasetكه مقدار دهي نشده باشد و .....
ولي رفع مشكل اين خطا بسته به دليل ايجاد اون است كه براي من فكر كنم مشكل از همين entrypoin در dllباشه
سلام ببخشید سوالمو اینجا مطرح میکنم ...
چون جایی براش پیدا نکردم و اینکه همینطوری نمیخواستم یه تاپیک بزنم برای یه سوال پس معذرت میخوام ....
من میخوام++C رو بریزنم ولی وقتی روی دکمه ستاپ کلیک میکنم با خطا ی Do't sent مواجه میشم و نمیریزه و وقتی روی این ایکون کلیک میکنم از برنامه میاد بیرون ...
میخواستم ببینم مشکل چیه !!!!!!!!!!!!!!
sara_she
16-06-2007, 12:32
من منظور شما رو متوجه نشدم
نصب كرديد يا قراره نصب كنيد
دوباره سلام.
مشکلی که پیش میاد مربوط به EntryPoint نیست.
وقتی با چنین مشکلی دچار میشین که پروژه رو دوباره Load میکنین. این معنیش اینه که شما در Resource ها
مشکل دارین. اگه به آدرسی که براتون گذاشتم توجه کنین نکاتی رو درباره نحوه ذخیره شدن Resource ها
گفته که بر اساس سری سازی XML هست. وقتی این resourcce ها Load میشن ، (فایل های resx)
اگه Designer برنامه مشکلی داشته باشه نمیتونن درست اجرا بشن.
شما Designer برنامه رو دستکاری کردین. باید تغییراتی که در اون دادین رو پیدا کنین و دوباره Designer رو
به حالت اولش برگردونین. در غیر این صورت پروژه ی جدیدی بسازین و کدهاتون رو تو این پروژه کپی کنین.
من میخوام++C رو بریزنم ولی وقتی روی دکمه ستاپ کلیک میکنم با خطا ی Do't sent مواجه میشم و نمیریزه و وقتی روی این ایکون کلیک میکنم از برنامه میاد بیرون ...
سلام.
همونطور که Sara_Sh گفتن ، بیشتر توضیح بدین.
کدوم نسخه از ++C و روی چه Platform ی؟ Windows؟ اگه Windows هست کدوم نسخش؟
ضمنا سوالتون رو متناسب با topic انتخاب کنین. اگه چنین topic ی پیدا نکردین یه پست جدید ایجاد
کنین.بنابراین خواهشا بحث رو با این عنوان دنبال نکنین و همونطور که گفتم پست جدیدی ایجاد
کنین.
ممنون از توجه شما.
sara_she
19-06-2007, 09:32
منظورتون از designer قسمت InitializeComponent است؟
ولي اين اتفاق براي تمام فرم هام مي افته . يعني وقتي پروژه در حال لود شدن است وقتي نوبت به باز شدن فرم مي شه هر كدوم از فرم ها كه باشه فرقي نمي كنه اگه فايل هدر فرم باشه مشكلي پيش نمي ياد ولي اگه بخواد design فرم رو باز كنه گير مي كنه و پروژه كامل باز نمي شه ، اگه منظورتون از designer همين چيزيه كه من گفتم تا اونجايي كه يادم مي ياد براي هيچ كدوم از فرم هام دستكاري در اين قسمت انجام ندادم فقط براي يكي از اونها مي خواستم كد اتصال به بانك رو تو قسمت initial بذارم كه مشكل لود فرم پيش اومد و حذفش كردم
درسته. منظورم متود InitializeComponent هست. چیزی نباید به این متود اضافه بشه.
ولی باز با توجه به چیزهایی که گفتین ، من سر حدس خودم هستم. چون مشکل در هنگام Load یه برنامه
از Resource ها یا Designer یه برنامه هست. بهتر کدتون رو ببینم ، البته اگه براتون امکان داره.
ولی باز اگه مشکل قابل شناسایی نباشه ، تنها را همونیه که در موردش صحبت کردیم.
sara_she
20-06-2007, 09:34
من چند تا فرم دار ولي چون مشكل در مورد همشون وجود داره initialcpmponnetيكي رو براتون مي گذارم البته يه چيز جالب كه بهش برخورد كردم اينه كه اگه designer فرم باز باشه و پروژه رو ببندم و دوباره باز كنم مشكلي پيش نمي ياد و فرم باز مي شه ولي اين در صورتي است كه بستن و باز كردن فاصله زيادي با هم نداشته باشند ولي اگه با وجود باز بودن تب desginer فرم پروژه رو ببندم و مثلا فردا پروژه رو باز كنم گير مي كنه و لود نمي شه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اين مشكل در مورد winform applicationها وجود نداره چون من براي اينكه مجبور نباشم هربار تغييراتي رو كه انجام مي دم براي ديدن نتيجه اتوكد رو لود كنم هر كاري رو اول تو winform applicationانجام مي دم و بعد به پروژه arx منتقل مي كنم
به نظر میاد که کد مشکلی نداره.
اما جالبه! روش های عجیبی برای حل مشکل پیدا میکنین!!!
چرا یه پروژه جدید از Arx ایجاد نمیکنین و کدها رو به اون منتقل نمیکنین؟
مشکل وقت دارین یا دوباره کاری به دردسرش نمی ارزه؟
باز تاکید می کنم که مشکل در Load پروژه از Resource ها برنامه هستن.
sara_she
21-06-2007, 10:18
نمي تونم دوباره كاري كنم چون كلي تغييرات و اضافه كردن فرم و كد .... رو بايد از اول انجام بدم
من هنوز در يه چيز شك دارم اينكه اين مشكل ربطي به warning كه تو پست هاي قبل گذاشتم داره يا نه ؛ اگه با هم مرتبط هستند شما كه در اين زمينه با تجربه تر هستيد با searchدر help موجود در vs مي تونيد اين errorرو ببينيد راهكارهايي هم براي حلش داده ولي همون طور كه قبلا گفتم پيگيري كردم ولي مشكل حل نشد شايد هم درست انجام ندادم
warning LNK4243: DLL containing objects compiled with /clr is not linked with /NOENTRY; image may not run correctly
دوباره سلام.
فکر کنم خیلی وقته از آخرین پست شما گذشته.
ای بابا! ببینین warning ها در زمان Compile پروژه ایجاد میشن نه زمان باز شدن پروژه.
در مورد warning تو چند روز آینده ، یه نمونه براتون میذارم ، که ببینین چطور رفع میشه.
چون مراحلش یه مقدار طولانی هست. بعد در موردش صحبت میکنیم.
sara_she
02-07-2007, 10:48
به اين فكر نكرده بودم كه warning در زمان كامپايل ايجاد مي شه . ممنون از يادآوري تون
منتظر كمك هاتون هستم
sara_she
24-07-2007, 11:32
مشكله من هنوز حل نشده ها !
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.