در لینکی که دادید هم دقیقا داره روشی رو که گفتم رو انجام میده یعنی برای CString به System::string داره اینطور کاری رو انجام میده :
// Convert to a System::String
String ^systemstring = gcnew String(orig);
systemstring += " (System::String)";
Console::WriteLine("{0}", systemstring);
delete systemstring;
ولی مشکل من از اینجا شروع شد :
من دارم از همون dll معروف shami استفاده می کنم تمام توابعش رو که البته یک آرگومان ورودی داشتند رو با همون کدی که دادم به راحتی باهاشون کار می کنم اما یه تابع با دو آرگومان به نام ShamsiIncrease در این dll وجود داره که داره مشکل ساز میشه من به این صورت دارم باهاش کار میکنم :
using namespace ShamsiDLL;
UpdateData();
ClassShamsiClass cls;
System::String^ strDate = gcnew System::String(Edit1);
hasel = cls.ShamsiIncrease(strDate,num);
UpdateData(FALSE);
Edit1متغیر یک edit box از نوع CString و strDateخروجی برای استفاده در تابع هست
و hasel برای چاپ جواب در خروجی هست . numهم عددی است که قرار است از تاریخ مورد نظر ما کم کند
نمیدونم چرا در این تابع به error زیر میرسه ؟
cstringt.h(1098) : error C2664: 'PtrToStringChars' : cannot convert parameter 1 from 'System::Object ^' to '__const_String_handle'
see reference to function template instantiation 'ATL::CStringT<BaseType,StringTraits>::CStringT<Sy stem::Object>(SystemString ^)' being