פורסם 2007 באוקטובר 2717 שנים אחרי שאת העבודה האחרונה שלי בSTRUCTים עשיתי בקובץ אחד. יש לי עוד עבודה איתם עם הרבה קבצים והפעם המורה(אחד אחר) אמר לעבוד בVC ולא בTC...לבעיהלא יודע מה הארורים בדיוק אומרים לי, אבל אולי אתם תגלו. אלה הקבצים הרלוונטיםmain#include "mainsudoko.h"int main(){ vec v; int i; for(i=0;i<9;++i) setCell(v,i,5); printf("%d",getCell(v,1)); getchar(); return 0;}vec.c#include "vec.h"int getCell(vec v, int index){ return(v.vector[index]);}int setCell(vec v, int index, int num){ v.vector[index]=num; return(1);}vec.hstruct vecc{ int vector[9];};typedef struct vecc vec;int getCell(vec v, int index);int setCell(vec v, int index, int num);לא חסר לי INCLUDE לשום דבר..הERRORS1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup1>Debug\sudoko.exe : fatal error LNK1120: 1 unresolved externals
פורסם 2007 באוקטובר 2717 שנים כשאתה מקמפל תוכנית windows, אז הפונקציה הראשית שלך היא לא void main, אלא משהו טיפה יותר מורכב.הדרך הכי קלה ליצור אותה זה ליצור project כ- win32 command line, ולתת ל- Project Wizard ליצור לך תוכנית פשוטה.
פורסם 2007 באוקטובר 2717 שנים מחבר כשעישיתי תפרוייקט אני בחרתי ב FROM EXIST FILESוהוא לא נתן לי שום MAIN אחר..
פורסם 2007 באוקטובר 2717 שנים אני לא יודע באיזו גרסא של VC אתה משתמש.ב- 2005, הפונקציית main נראית ככה:int _tmain(int argc, _TCHAR* argv[])אם זו לא הגרסא שאתה משתמש בה, אתה יכול פשוט ליצור פרוייקט חדש ולראות איך היא נראית.
פורסם 2007 באוקטובר 2717 שנים איך יצרת את הפרוייקט?בכל מקרה, תבחר ב Win32 Console Application ושם ב Empty Project. זה יצור לך פרוייקט ריק שאליו תוכל להוסיף את הקבצים שלך.Boomerang הוא לא חייב להשתמש ב _tmain . ה _tmain בסה"כ מוחלף ל main אם הפרוייקט הוא ANSI או ל wmain אם הוא unicode:http://msdn2.microsoft.com/en-us/library/6wd819wh(VS.80).aspx
פורסם 2007 באוקטובר 2717 שנים מחבר אני משתמש ב2005. ואני לא יצרתי פרוייקט חדש כי הוא מקבל רק קבצי C++ ואני משתמש בC(ולא אני לא יכול לעבור).והוא נותן לי מלא ארורים על השורה הזו שהבאתם.
פורסם 2007 באוקטובר 2717 שנים כפי שאמרו לך, תיצור פרוייקט חד ש עם הWIZARD, ותבחר שם EMPTY PROJECT.כשאתה מוסיף קבצים חדשים לתוכנית שלך, תדאג לתת להם סיומת .c. כלומר, במקום שאתה צריך להכניס את השם שלהם, תרשום myCFile.c.
פורסם 2007 באוקטובר 2717 שנים מחבר זה מפעיל לי את התוכנית, אבל הוא אומר לי שאני לא יכול להשתמש בV לפני שאני מאתחל אותו.ניסיתי לרשום בSTRUCTint vector[9]={0,0,0,0,0,0,0,0,0};והוא מתחיל להשתגע.. ניסיתי גם לעשות לו פונקציה שמאפסת את V ועדין אחרי שאני קוראה לה יש את אותו הודעה.
פורסם 2007 באוקטובר 2717 שנים אתה לא יכול לאתחל את המערך בתוך הגדרת הSTRUCT. מה שאתה כן יכול לעשות זה בהצהרה על המשתנה שלך(מסוג VEC):vec v = {0};ותרשום את ההודעה המדוייקת שקיבלת.
פורסם 2007 באוקטובר 2717 שנים אפשר לעשות את זה גם למבנים, לא רק למערכים.struct bla{int a;char b;}....struct bla c = {5, 'g'};
פורסם 2007 באוקטובר 2717 שנים מחבר סבבה.עכשיו הגענו לקוד, הוא מדפיס לי 0 במקום 5, אותה תוכנית.ניסיתי גם לעשות לולאה של הדפסות והוא מדפיס לי 0 אחד
פורסם 2007 באוקטובר 2717 שנים זה מה שקורה כאשר מכניסים מערך לתוך STRUCT - הוא מעתיק את כל המערך, ולא שולח את הכתובת שלו.תשלח לפונקציות את הכתובת של הSTRUCT והכל יסתדר.
פורסם 2007 באוקטובר 2717 שנים מחבר כנראה שכחתי לציין שניסיתי עם פוינטר וזה לא עבדכלומר אני שולח &v ומקבל בפונקציה *vולא, לא עובד..עריכה:כדי לחדד את העיניין for(i=0;i<9;++i) setCell(&v,i,5);int setCell(vec *v, int index, int num){ (*v).vector[index]=num; return(1);}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.