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

كيف أجعل ال++C تتعرف على الملفات الرأسية

مغلق
بدأه eias في 15 يوليو 2006 · 15 رد · 3,254 مشاهدة · في DirectX
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم..

الحقيقة عندما كنت أقرأ دروس الأستاذ HGB عن الDirect x على الرابط:

/index.ph...=37155&st=0

و بعد تنزيل الDiretc x 9 SDK واجهت مشكلتين :

الأولى هي أن ال++C لم تتعرف على الملفات الرأسية الخاصة بالDirect x مثل

d3dx9.H

ولقد وجدت هذه الملفات الرأسية في CD الSDK و نسختها لمجلد المثال و عدلت ال

#include <d3d9.h>

إلى

#include "d3d9.h"

و لكن من دون فائدة فما الحل لجعل اللغة تتعرف على الملفات الرأسية علماً أني أستخدم C++.NET 2005

و المشكلة الثانية أن كل أمثلة الSDK هي فقط لل C++.NET ... هل هذا يعني أنه لا يوجد أمثلة للVC++6 في الSDK 9

وشكرا لكم.

#3

Select Tools-> Options->Projects and Solutions-> VC++ Diretories

In the "Show directories for:" dropdown, pick "Include files"

You will see a list of directories there. Verify that "$(DXSDK_DIR)include" is in the list. If not, add it (click on the little "Folder" icon to add a new entry)

Now, in the "Show directories for:" dropdown, pick "Library files"

You will see a list of directories there. Verify that "$(DXSDK_DIR)lib\x86" is in the list. If not, add it (click on the little "Folder" icon to add a new entry)

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#4
اقتباس
و المشكلة الثانية أن كل أمثلة الSDK هي فقط لل C++.NET ... هل هذا يعني أنه لا يوجد أمثلة للVC++6 في الSDK 9

ايضا تعمل على VC 6 . لكن يوجد SDK خاص بـ VC 6 وهو الملف اللي حجمه 99 ميقا .

بالنسبة للمكتبة .. مثل ما قال احمد . يجب أن تحدد موقع المكتبة ..

16_07_06_12_53_16_1153036396FF.JPG

تم تعديل هذه المشاركة بواسطة الشمري في 16 يوليو 2006 في 10:57

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#5

شكرا لكم إخواني الكرام أحمدصالح و الشـمري...

الحقيقة حليت المشكلة بنسخ كل الHeaders و الLibs الخاثصة بال SDK إلى المجلد

:\Microsoft Visual Studio 8\VC\PlatformSDK

ولكن و مع ذلك بقيت تظهر مشكلتين غير معروفتين خما:

-------------------------------------------------

Error 1 error LNK2019: unresolved external symbol

_Direct3DCreate9@4 referenced in function "long __cdecl

InitD3D(struct HWND__ *)" (?

InitD3D@@YAJPAUHWND__@@@Z) Vertices2.obj

Error 2 fatal error LNK1120: 1 unresolved externals

Debug/Vertices2.exe

-----------------------------------------------------------------

ما قصة هذه الأمثلة ..

#6

هل ربطت المكتبات ..

يعني ممكن تحتاج للمكتبة d3d9.lib .. انا لا اذكر اسمها بالظبط .. لكن يجب أن تربط المكتبة ..

ضع هذا السطر قبل

#include

#   pragma comment (lib, "xxxx")

استبدل xxxx باسم المكتبة

ما رأيك أن تلقي نظرة على هذ الدرس.. لكن لاحظ انه يعمل على dx8 .. انت فقط استبدل الرقم 8 بالرقم 9 :) في اي مكان تواجهه .

او من الممكن ان تعمل على dx8 .. مافيه اي اشكال , ولاتوجد فروق كبيرة .

http://www.codeproject.com/directx/d3d_tut1.asp

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#7

شكرا لك أخي الكريم الشمري و عذرا على التأخر بالرد ...

الحقيقة الانترنت عندي تعبان على الآخر لو واجهت مشاكل سأخبركم ^.^

#8

السلام عليكم...

أخي الكريم أحمد صالح بصراحة أنا حاولت أربط الملفات و لكن أنا لاحظت إنك استخدمت

$(DXSDK_DIR)include

$(DXSDK_DIR)lib\x86

طبعاًهم لم يكونوا موجودين ..و لكني لم أعرف كيف أضفهم ...يعني أنا ضفت مسار المكتبات مثل

D:\Microsoft Visual Studio 8\VC\PlatformSDK\Lib

و

D:\Microsoft Visual Studio 8\VC\PlatformSDK\Include

و لكن هذا ال

$(DXSDK_DIR)include

$(DXSDK_DIR)lib\x86

من أين سآتي بهم مع العلم أن الأمثلة حتى الآن لا تفتح...ماذا أفعل يا جماعة ..أصلاً أنا غيرت كل جهازي لكي يدعم قوة ال.net

و شكرا

#9

لازم تكون عندك مكتبة الDirectX SDK و بها المجلدان المذكوران فوق . Include - Lib

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#10

موجودان على CD و قمت بنسخ محتوياتها إلى مجلدات اللغة الخاصة ب PlatformSDK أليس ذلك صحيحياً ..بس المشكلة أن هذه

$(DXSDK_DIR)include

$(DXSDK_DIR)lib\x86

لا أعرف كيف يمكن إدخالها ..هل ل.NET 2005 علاقة بهذا

وشكرا لك

#11

اخي قم باختيار Browse و اختار مسار مكتبات Include مرة ، ومسار مكتبات Library .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#13

لاحظ أخي الكريم هذا كان في الOut Put

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

1>Linking...

1>Vertices.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4

referenced in function "long __cdecl InitD3D(struct HWND__ *)" (?

InitD3D@@YAJPAUHWND__@@@Z)

1>Debug/Vertices.exe : fatal error LNK1120: 1 unresolved externals

1>Build log was saved at "file://f:\Learn Vb\C++\Direct

x\Example\Vertices\Debug\BuildLog.htm"

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

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

وكانت تظهر هذه الرسالة دائماً (في الرمفقات)..ما الحل برأيك...

27_07_06_11_03_15_1154023395Msg.JPG

تم تعديل هذه المشاركة بواسطة eias في 27 يوليو 2006 في 21:06

#14

الحقيقة حتى الآن لاتزال المشكلة و لكن نبهني مبرمج Microsoft وهوDavid Weller على قضية مهمة و هي اني

أستخدم الC++.NET و الSDK الموجود عندي هي April 2005 ربما تكون عدم توافق بين الSDK و اللغة ..ما

رأيكم ؟

#15

لا ... مبرمج مايكروسوفت ماعنده سالفة :D .

أنا عندي sdk 2005 .. ويشتغل على فيجوال سي 6 ..

أخي ..

لنبدأ خطوة .. خطوة .

الخطأ عندك هو انك لم تربط المكتبة بشكل صحيح

اول خطوة .. هي تثبيت SDK .. بعد ان تثبتها تأكد أنك ربطت مجلد الملفات الرأسية ومجلد LIB .. مع مترجمك .

كما تلاحظ في الصورة العلوية .. ( نفس الامر مع c.net )

ثم .. اتبع الدرس

http://www.codeproject.com/directx/d3d_tut1.asp

انا اشتغلت على sdk... قديم عاد 2002 تقريبا .. و sdk جديد 2005 .. كلها اشتغلت وكلها نفس طريقة التثبيت .

انا متعاجز اني اشرح بالصور .. واثبت sdk :) .. الا والله كان ساعدتك .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#16

كفو أيها الشمري

يعني بصراحة كنت رح اشتري التحلاية ... و أخيراً انحلت المشكلة و لكن بطريقة معقدة..

أول شي لما كنت عم أقرأ الدرس تبع الDirect x8 لفت انتباهي موضوع الInput في الLinker في خصائص

المشروع .. بعد ذلك جربت أحد المشاريع فنجح معي...

التاني و التالت ما نجحوا ...راجعت مقال ل David Weller وكتب فيه:

In some rare cases you might encounter fatal linker errors (CVT1100 and LNK1123).آ

If you get these messages,آ remove the .manifest and .rc files from your "Resource

Files" project directory and try again.

فعلاً طبقت الطريقة و نجحت كل المشاريع ..

شكرا :lol:

هذا الموضوع مغلق.

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