PDA

View Full Version : سوال: ارتباط بین c و #c



gilda azary
جمعه 08 اردیبهشت 1391, 13:14 عصر
سلام با تشکر از مطالب مفیدتون
برنامه ای به سیشارپ نوشتم قصد دارم یه ارتباطی بین برنامم به سیشارپ و یه برنامه دیگه که به سی نوشتم ایجاد کنم به اینصورت که یه سری تکست باکس و ... در برنامم (برنامه سیشارپ)دارم میخام هربار که مقداری در تکست باکسهام مینویسم بعد از اینکه برنامه را اجرا کردم این مقادیر در سی ثبت بشه!!!
آیا اصلا چنین ارتباطی امکان پذیره؟؟؟

Hossenbor
جمعه 08 اردیبهشت 1391, 13:25 عصر
میشه بیشتر توضیح بدین

Hossenbor
جمعه 08 اردیبهشت 1391, 13:26 عصر
میشه بیشتر توضیح بدین الان تا جایی که من فهمیدم باید از اکتیو ایکس سی استفاده کنید

gilda azary
جمعه 08 اردیبهشت 1391, 14:06 عصر
من باید یه برنامه به سیشارپ بنویسم که این برنامه قراره یه سری مقداررا بگیره و باید وقتی که برنامم اجرا میشه این مقدارها توی برنامه که به سی نوشتم ثبت بشه
اکتیو ایکس سی چیه ؟اصلا نمیدونم (چطوری باید 2 تا زبانا با هم ارتباط بدم)

سوداگر
جمعه 08 اردیبهشت 1391, 14:50 عصر
اصلا نمیدونم (چطوری باید 2 تا زبانا با هم ارتباط بدم)
اگه انگلیسیتون خوب هم نباشه، کدها و تصاویر این لینک (http://www.codeproject.com/Articles/9826/How-to-create-a-DLL-library-in-C-and-then-use-it-w)به دردتون میخوره.
اما اگه میخواهید ارتباط برقرار کنید به این صورت که گفتید. باید از ساختار XML برای اینکار استفاده کنید که در قسمت C#‎‎‎ اون مطلب زیاد هست و کار راحتیه (Linq to xml یا مبحث سریالایز کردن رو بخونید) برای خواندن فایل XML در C هم به کتاب C++‎ for beginners .... masters صفحه 597 تا 599 مراجعه کنید یا اینجا (http://www.codeproject.com/Articles/176236/Parsing-an-XML-file-in-a-C-C-program)

gilda azary
جمعه 08 اردیبهشت 1391, 18:10 عصر
اگه انگلیسیتون خوب هم نباشه، کدها و تصاویر این لینک (http://www.codeproject.com/Articles/9826/How-to-create-a-DLL-library-in-C-and-then-use-it-w)به دردتون میخوره.
اما اگه میخواهید ارتباط برقرار کنید به این صورت که گفتید. باید از ساختار XML برای اینکار استفاده کنید که در قسمت C#‎‎‎ اون مطلب زیاد هست و کار راحتیه (Linq to xml یا مبحث سریالایز کردن رو بخونید) برای خواندن فایل XML در C هم به کتاب C++‎ for beginners .... masters صفحه 597 تا 599 مراجعه کنید یا اینجا (http://www.codeproject.com/Articles/176236/Parsing-an-XML-file-in-a-C-C-program)

ممکنه لطف کنید اطلاعات بیشتری در اختیارم قرار بدید من اطلاعات خیلی کمی در مورد xml دارم (البته با windows form application کار میکنم نه consol)!!
اگه نمونه پروژه ای تو این زمینه داشته باشید خیلی بهم کمک میکنه!!

Hossenbor
جمعه 08 اردیبهشت 1391, 19:17 عصر
از راه اول استفاده کنین بهتر نیست؟ من فکر کردم دو برنامه شما مجزاست

محمد فدوی
جمعه 08 اردیبهشت 1391, 21:25 عصر
البته من این رو اضافه کنم که اگر هردو بصورت سورس هستن (به نظرم از توضیحات شما اینجوری برآمد که ممکنه سورس باشن) لزومی نداره از ActiveX یا Linq استفاده کنی. در اون صورت به سادگی میشه با یه واسط ++Managed C این ارتباط رو بر قرار کرد...

gilda azary
جمعه 08 اردیبهشت 1391, 23:59 عصر
البته من این رو اضافه کنم که اگر هردو بصورت سورس هستن (به نظرم از توضیحات شما اینجوری برآمد که ممکنه سورس باشن) لزومی نداره از ActiveX یا Linq استفاده کنی. در اون صورت به سادگی میشه با یه واسط ++Managed C این ارتباط رو بر قرار کرد...

منظورتون از سورس چیه ؟ فایل dll؟
میشه در مورد managed c++ توضیح بدید؟؟ا
گه برنامه سی را به صورت dllدر پروژه سیشارپم بیارم آیا میتونم با نوشتن مقادیر مورد نظرم در تکست باکسای برنامه سیشارپ این مقادیر را در فایل dll مربوط به سی ثبت کنم؟؟

gilda azary
شنبه 09 اردیبهشت 1391, 00:04 صبح
از راه اول استفاده کنین بهتر نیست؟ من فکر کردم دو برنامه شما مجزاست

لطفا در مورد اکتیو ایکس سی توضیح بدید!!!!

Hossenbor
شنبه 09 اردیبهشت 1391, 10:49 صبح
زیاد با این مقوله کار نکردم دوست عزیز ولی فکر کنم اینا بدردت بخوره
http://www.codeproject.com/Articles/32772/Create-and-Use-a-C-ActiveX-component-within-a-NET
و
http://ultimaserial.com/vctutor.html
اکتیو ایکس رو هم که میدونید چیه مثل کنترل مدیا پلییراگر رو تول باکس راست کلیک کنید بعد چویز ایتم رو بزنید بعد وارد دیالوگی میشید که پره از این نمونه

محمد فدوی
شنبه 09 اردیبهشت 1391, 19:42 عصر
منظورتون از سورس چیه ؟ فایل dll؟
میشه در مورد managed c++ توضیح بدید؟؟ا
گه برنامه سی را به صورت dllدر پروژه سیشارپم بیارم آیا میتونم با نوشتن مقادیر مورد نظرم در تکست باکسای برنامه سیشارپ این مقادیر را در فایل dll مربوط به سی ثبت کنم؟؟

ببینید بطور کلی با ++VC به دو صورت native و managed میشه برنامه نویسی کرد. اینجوری که من از توضیحات شما فهمیدم، شما میخواین بین سی شارپ و Native VC ارتباط برقرار کنین.

دو حالت وجود داره، اگر این دوتا برنامه جدا از هم هستن (یعنی قراره بصورت دوتا برنامه ی جدا روی سیستم کاربر نصب بشن و...) شما با توجه به 2 تا نکته میتونین بهترین راه ارتباط رو انتخاب کنین:
معلوم کنین می خواین این داده ها رو از #C به ++C انتقال بدین، یا برعکس، یا شایدم قراره دو طرفه باشه...
این داده ها چیا هستن... (فقط رشته ان، ممکنه فایل باشن، اینکه تعدادشون کمه یا ممکنه بخواین یه آرایه با طول متغیر رو ارسال کنین و ...)
بعد از این می تونین یکی از راه های dll، ActiveX، XML رو انتخاب کنین.

اگرم حوصله ی این همه دردسر رو ندارین XML بدون شک کارتون رو راه میندازه، هرچند ممکنه بهترین راه نباشه. :چشمک:

اما اگر قرار نیست این دو تا از هم جدا باشن، یعنی هردو یک برنامه هستن و فقط شما میخواین توی یه برنامه هم زمان از دو تا زبان (یعنی سی و سیشارپ) استفاده کنین، راه حل خیلی خیلی خیلی (!) آسون تره.

کلا اگه در مورد برنامتون یکم توضیح بدین فکر کنم راحت تر باشه توضیح دادنش. :)

Hossenbor
شنبه 09 اردیبهشت 1391, 20:23 عصر
دوسته عزیز تو سی شارپ تقریبا تمام نیازهایه یک کاربر گنجانده شدهو با توجه با اون کتابخانه بزرگش شما نیازی به سی پلاس پلاس ندارید مگر برای سرعت یا برای نصب دات نت فریمورک وفکر کنم در ضمن شما برای استفاده از مقوله سرعت میتونی از Dllimport استفاده کنی مشکلتو حل میکنه

gilda azary
یک شنبه 10 اردیبهشت 1391, 00:42 صبح
اما اگر قرار نیست این دو تا از هم جدا باشن، یعنی هردو یک برنامه هستن و فقط شما میخواین توی یه برنامه هم زمان از دو تا زبان (یعنی سی و سیشارپ) استفاده کنین، راه حل خیلی خیلی خیلی (!) آسون تره.

کلا اگه در مورد برنامتون یکم توضیح بدین فکر کنم راحت تر باشه توضیح دادنش. :)

همینطوره من میخام بتونم توی محیط برنامه نویسی سیشارپ برنامه ای را که به زبان سی نوشتما بیارم و بعد بتونم هر دوی این برنامه ها را با هم ارتباط بدم (برنامه سیشارپم تقریبا شامل یکسری تکست باکس و دکمه های رادیویی و ... است که میخام هر گونه مقداری که وارد این تکست باکسا میکنم یا دکمه ای را فعال میکنم بعد از اجرای برنامه این مقادیر و ... در برنامه ای که به سی دارم ثبت بشه تا بعد سی را به یه زبان برنامه نویسی که مربوط به برق تبدیل کنم).لطف میکنید تو این زمینه راهنماییم کنید!؟

Hossenbor
یک شنبه 10 اردیبهشت 1391, 09:18 صبح
آهان حالا افتاد شما باید اون مقادیر رو ذخیره و با سی فراخوانی کنید و بعد برنامه خودتونو به اون برنامه خاص تبدیل کنید راه هایه زیادی هست من جمله راههایه که دوستان گفتن و بهترین راه اینه که اونا رو قالب بندی و ذخیره کنید و بعد اونا رو در سی فراخوانی کنید درسته؟

gilda azary
یک شنبه 10 اردیبهشت 1391, 14:59 عصر
آهان حالا افتاد شما باید اون مقادیر رو ذخیره و با سی فراخوانی کنید و بعد برنامه خودتونو به اون برنامه خاص تبدیل کنید راه هایه زیادی هست من جمله راههایه که دوستان گفتن و بهترین راه اینه که اونا رو قالب بندی و ذخیره کنید و بعد اونا رو در سی فراخوانی کنید درسته؟
بله درسته.مقادیر در سیشارپ نوشته بشه سپس در سی ثبت بشه و نهایتا سی را به برنامه دیگه ای تبدیل کنم.
قالب بندی و ذخیره؟!!