الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

visual c++ 2008

بدأه sandra_2012 في 10 سبتمبر 2012 · 9 رد · 15,403 مشاهدة · في C++.Net
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لو سمحتو انا استخدم فيجوال سي بلس بلس 2008

بس عندى خطا ما عرفت اصححه

function template has already been defined

يا ريت تساعدونى في تصحيحه

بسرعة وضرورى جدا

#2

لست متأكد من مشكلتك , ربما تود طرح البرنامج الذي تعمل عليه, لكن إذا كان في مشروعك ملفات رأسية h. جرب أن تضع ماكرو بسيط في تلك الملفات لمنع إعادة تعريف المتغيرات أو الدوال فيها.

مثلاً لو كان لديك ملف إسمه foo.h إكتب:

#ifndef __FOO_H__
#define __FOO_H__

// وضع جميع محتويات الملف الرأسي هُنا

#endif

الآن لن يُعاد تعريف مابداخل الملف إذا سبق أن أدرجته في مكان آخر.

#3

السلام عليكم

لو سمحت ممكن تشرحلى اكثر

لانى ما فهمت عليك

او اعطيك البرنامج تشوفه

#4

إذا كان لديك ملف إسمه foo.h يحتوي :

int x();
int y(int x, int y);

أضيف عليه ليصبح :

#ifndef __FOO_H__
#define __FOO_H__

int x();
int y(int x, int y);

#endif

إذا لم تُحل المشكلة, ضع رسالة الخطأ كامة والبرنامج في ردك.

#5

في المرفقات

3 ملفات

ارجو الرد سريعا وشكرا

SplayTree.cpp

SplayTree.h

dsexceptions.h

#6

أزل هذا الإدراج :

#include "SplayTree.cpp"

من آخر الملف SplayTree.h. فهو سيدرج SplayTree.h وSplayTree.h سيعيد إدراج SplayTree.cpp ويظهر لك بأن هناك إعادة تعريف.

أيضاً لاتقم بإدراج ملفات الـcpp. بل إجعل الإدراج يقتصر فقط على الملفات الرأسية. إنظر لكيفية تنظيم وتنسيق برنامج :

//foo.h
#ifndef __FOO_H__
#define __FOO_H__

class Foo {
public:
    void method(void);
};

#endif

//foo.cpp
#include <iostream>
#include "foo.h"

void Foo::method(void)
{
    std::cout << "Hello" << std::endl;
}

// main.cpp
#include "foo.h"

int main(int argc, char **argv)
{
    Foo foo;
    foo.method();

    return 0;
}

وعندما تريد تصريفة, صرفه هكذا :

C:\>cl /EHsc main.cpp foo.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

main.cpp
foo.cpp
Generating Code...
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:main.exe
main.obj
foo.obj

C:\>
#7

شكرا لك اخى على المساعدة

فقد ازيل الخطا

ولكن البرنامج لم يتنفذ وظهر لى هذا الخطا

1>------ Build started: Project: splayy, Configuration: Debug Win32 ------

1>Linking...

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup

1>C:\Users\marwa\Documents\Visual Studio 2008\Projects\splayy\Debug\splayy.exe : fatal error LNK1120: 1 unresolved externals

1>Build log was saved at "file://c:\Users\marwa\Documents\Visual Studio 2008\Projects\splayy\splayy\Debug\BuildLog.htm"

1>splayy - 2 error(s), 0 warning(s)

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

#8

هل ممكن تصححلى البرنامج

اكون لك شاكرة

#9

اريد أن اعرف ما معنى هذا الخطا وكيف تصحيحه

error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup

وهذا الخطا أيضا

unresolved externals

ارجو منك الرد

ولك جزيل الشكر

#10
sandra_2012 كتب:

اريد أن اعرف ما معنى هذا الخطا وكيف تصحيحه

error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup

من اساسيات سي++ ان يكون بالبرنامج دالة رئيسية تسمي main() ، اعتقد انكم نسيتم ادراجها بالبرنامج

ادرج الدالة الرئيسة ثم ابني عليها برنامجك ...

اقتباس
وهذا الخطا أيضا

unresolved externals

هذا ليس خطأ ولكنة جزء من جملة فى الخطأ انظر اول الخطأ السابق

تم تعديل هذه المشاركة بواسطة محمد عودة في 12 سبتمبر 2012 في 07:57

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

مواضيع مشابهة