وبلاگ رسمی علیرضا شهامت در بلاگ اسکای

وبلاگ رسمی علیرضا شهامت در بلاگ اسکای

وبلاگ رسمی علیرضا شهامت در بلاگ اسکای - تأسیس شده در سال 1396
وبلاگ رسمی علیرضا شهامت در بلاگ اسکای

وبلاگ رسمی علیرضا شهامت در بلاگ اسکای

وبلاگ رسمی علیرضا شهامت در بلاگ اسکای - تأسیس شده در سال 1396

سرریز پشته - خطای سی پلاس پلاس - اپن جی ال - ترجمه ی فارسی گوگل

ترجمه ی فارسی گوگل ترجمه :


5000/5000
Character limit: 5000
سرریز پشته

    1
    5

    خانه
        عمومی
        سرریز پشته
        برچسب ها
        کاربران
        شغل ها
        تیم ها
        پرسش و پاسخ برای کار
        بیشتر بدانید

خطا C1083: امکان باز شدن شامل فایل: 'stdafx.h'
سوال بپرس
10

وقتی این برنامه را کامپایل کردم (از نسخه 4 زبان برنامه نویسی C ++):

main.cpp

#include <stdafx.h>
#include <iostream>
#include <cmath>
#include "vector.h"
استفاده از namespace std؛

sqrt_sum دو (بردار و)؛

int _tmain (int argc، _TCHAR * argv [])
{
    بردار v (6)؛
    sqrt_sum (v)؛
    بازگشت 0؛
}

double sqrt_sum (vector & v)
{
    دو برابر = 0؛
    برای (int i = 0؛ i! = v.size ()؛ ++ i)
        مجموع + = sqrt (v [i])؛
    مبلغ بازگشت؛
}

vector.cpp

#include <stdafx.h>
#include "vector.h"

بردار (بردار) (int s)
: elem {new double [s]}، sz {s}
{
}
دو برابر و بردار :: اپراتور [] (int i)
{
    بازگشت elem [i]؛
}
متن int :: size ()
{
    بازگشت sz؛
}

vector.h

#include <stdafx.h>
بردار کلاس {
عمومی:
    بردار (int s)؛
    دو طرف و اپراتور [] (int i)؛
    اندازه int ()؛
خصوصی:
    دو * elem؛
    int sz؛


این خطاها را به من داد:

اشتباهات

من آن را در مایکروسافت ویژوال استودیو 2013، در ویندوز 7 اجرا کردم. چگونه آن را تعمیر کنم؟
سی ++ ویژوال استودیو ویژوال استودیو 2013 stdafx.h
اشتراک گذاری
ویرایش مارس 1 '17 در 18:59
سنسی جیمز
1،7002030
خواسته اکتبر 12 '14 در 21:28
کولیس
5131819

    6
    شروع پروژه شما راه راست اغلب 99٪ از نبرد است. فایل + جدید + پروژه، ویژوال سی + +، Win32، انتخاب کنید "برنامه Win32 کنسول". شما در حال حاضر فایل stdafx.h با تمام تنظیمات کامپایلر را فقط به عنوان راهی برای استفاده از ویژگی های هدر های پیش کامپایل کرده اید. اگر کتاب شما را به این راه هدایت نکرد، پس باید به دنبال دیگری باشید. اما احتمالا این کار را کرد. - هانس پاسانت 12 اکتبر '14 در 21:53

یک نظر اضافه کن
6 پاسخ
فعال
قدیمی ترین
رای
15

شما باید به درستی درک کنید که "stdafx.h" چیست، به عنوان مثال هدر پیش کامپایل شده است. سوالات دیگر یا ویکی پدیا به آن پاسخ خواهند داد. در بسیاری از موارد هدر پیش کامپایل شده را می توان اجتناب کرد، به ویژه اگر پروژه شما کوچک و با چندین وابستگی باشد. در مورد شما، همانطور که احتمالا از یک پروژه قالب شروع شد، استفاده از آن برای Windows.h فقط برای ماکرو _TCHAR استفاده شد.

سپس، هدر پیش کامپایل شده معمولا یک فایل پروژه در پروژه در دنیای ویژوال استودیو است، بنابراین:

    اطمینان حاصل کنید که فایل "stdafx.h" در پروژه شما وجود دارد. اگر شما (به عنوان مثال آن را حذف نکردید)، فقط یک پروژه موقت جدید ایجاد کنید و از آن به طور پیشفرض کپی کنید؛
    #include <stdafx.h> را به #include "stdafx.h" تغییر دهید. قرار است که یک فایل محلی پروژه باشد، که در فهرست دایرکتوری ها قابل حل نیست.

ثانیا: غیر قابل توصیف است که هدر پیش کامپایل را در هدرهای خود اضافه کنید تا فضای نامی دیگری از منبع را که می تواند از کد شما به عنوان یک کتابخانه استفاده کند، نادیده بگیرد، بنابراین کاملی را در vector.h حذف می کند.
اشتراک گذاری
پاسخ 12 اکتبر '14 در 21:42
ceztko
8،67723649

    بعد از این تغییرات imgur.com/2lgOJht - Kulis Oct 13 '14 at 13:38
    1
    تمام روشهایی که درون vector.h هدر تعریف کردید نماد املت شده در اجرایی اصلی پیدا نشد. اطمینان حاصل کنید که شما واقعا کامپایل vector.cpp هستید. در ویژوال استودیو: مطمئن شوید vector.cpp در فیلترهای "Source Files" (شما آن را به عنوان یک پوشه مشاهده می کنید). یا آن را حذف کنید و به پروژه بخوانید. - ceztko Oct 13 '14 در 15:08
    1
    ecztko "غیر قابل توصیف است که هدر پیش کامپایل را در هدرهای خود اضافه کنید تا فضای نامی دیگری از منبع دیگری که می تواند از کد شما استفاده کند، مخفی نشود" ... آیا مطمئن هستید؟ هر هدر قبل از کامپایلل دارای #pragma یک بار است، بنابراین تنها برای اولین بار استفاده می شود و دیگر (مانند vector.h) نادیده گرفته می شوند، آیا آنها نیستند؟ - مارتین پککا Jun 10 '16 در 0:48
    1
    هوم، من به یک وضعیتی رسیدم که در stdafx.h در فایل های هدر من باعث مشکلات می شود. این زمانی است که یک کتابخانه از stdafx.h استفاده می کند، اما برنامه با استفاده از آن نمی کند، و فایل stdafx.h توسط کتابخانه نمایش داده نمی شود. - مارتین پککا Jun 11 '16 در 0:27
    1
    بله این باید یک مسئله باشد. به طور کلی، من نگران این واقعیت است که stdafx.h بیش از آن چیزی است که نیاز به پیوند کتابخانه دارد، بنابراین با اضافه کردن آن به طور غیر ضروری، شما نام دیگران را آلوده می کنید. - ceztko Jun 11 '16 در 8:02

نمایش 1 نظر دیگر
8

فقط به جای stdfax windows.h را وارد کنید یا یک پروژه تمیز بدون قالب ایجاد کنید.
اشتراک گذاری
پاسخ 12 اکتبر '14 در 22:05
user3718058
13829
یک نظر اضافه کن
6

دو راه حل برای آن وجود دارد.

راه حل شماره یک: 1. ایجاد پروژه. هنگام ایجاد یک پروژه مطمئن شوید هدر پیش کامپایل شده بررسی می شود (تنظیمات برنامه ... *** پروژه خالی را بررسی نکنید)

راه حل شماره دو: 1. ایجاد stdafx.h و stdafx.cpp در پروژه خود. 2 بر روی پروژه کلیک راست کنید. -> خواص -> C / C ++ -> سربرگ پیش کامپایل شده. 3. header قبل از کامپایل را برای ایجاد (/ Yc) 4.Rebuild solution

اگر با هر مسئله روبرو شدید، یک پیام را به من ببند.
اشتراک گذاری
پاسخ داد 11 ژوئن '16 در 6:51
دیلورگورگ
8051318

    1
    من این فایل های خالی را در "راه حل شماره دو" ایجاد کردم و در Properties Properties-> Precompiled Header خالی باقی مانده بود- Create (/ Yc) را انتخاب نکردم. من آن را دوباره ساختم و همه چیز خوب است - Junior M Jul 21 '17 در 21:16

یک نظر اضافه کن
2

اضافه کنید #include "afx