שגיאה מוזרה בC.

James Devlin

New member
שגיאה מוזרה בC.

כשאני מוסיף את השורה הבאה לקוד שלי:

std::string sFrameTag = (std::string)mFrameTag;


אני מקבל את השגיאה המוזרה הבאה:


Error 34 error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in VFPAnalyzerApi.lib(VFPEvaluation.obj) msvcprtd.lib


יש לי את הIncludes הבאים:

#include <stdio.h>
#include <time.h>
#include <string>


מישהו יכול לעזור? אין לי מושג איך לגשת לזה.

תודה מראש!!
 

פרסאוס

New member
שגיאת קישור

המקשר טוען שיש שתי פונקציות והוא לא יודע איך לקשר.
השאלה האמיתית היא מה הוא הטיפוס של mFrameTag?
 
זו שגיאת לינקר שאומרת שמשהו מוגדר אצלך פעמיים.

תבדוק שני דברים: אחד, שאין לך כבר משתנה בשם sFrameTag איפשהו, ושני שה cast הזה שאתה עושה הוא הגיוני. אף פעם לא ראיתי מישהו עושה cast של משהו אל std::string, אתה בטוח שאתה מבין מה אתה עושה? מה הטיפוס של mFrameTag?

תבדוק שני דברים:

std::string sFrameTag;

ככה בלי המשך השורה, לראות אם זה עדיין קורה.
ודבר שני:

std::string sFrameTagXXX = (std::string)mFrameTag;

ותראה אם זה עדיין קורה. תבדוק כל מקרה בנפרד ותגיד לנו מה התוצאה.
 

James Devlin

New member
היי, תודה על התשובה.

כמה פרטים נוספים:

- הטיפוס של mFrameTag הוא char[256] zzz. למעשה, אני מנסה לעשות cast ממערך של chars לstring.

- גם כשאני כותב std::string sFrameTag; או std::string XXXFrameTag; אני מקבל שגיאת לינקר, גם בלי המשך השורה. יש לך מושג למה זה קורה?


תודה מראש!!
 

James Devlin

New member
עדכון: גם כשאני משתמש בסינטקס הבא:

std::string sFrameTag(mFrameTag); zzz אני מקבל את אותה השגיאה.

אם אני מוותר על הstd:: zzz, אז אני מקבל את השגיאה string: undeclared identifier


תודה על העזרה!!
 

James Devlin

New member
הסתדרתי. אמרו לי לשנות מ MDd/ ל MD/

תחת

project properties-> C/C++ -> code generation -> runtime Library וזה פתר את הבעיה.

מישהו יכול בבקשה להסביר מה משמעות השינוי? לצערי, אני לא מבין לעומק מה בדיוק עשיתי..

תודה מראש!!
 
למעלה