ورود

نسخه کامل مشاهده نسخه کامل : ارتباط دو DLL با یکدیگر ؟!



shadmehrshadow1
08-11-2013, 23:14
سلام.
من در برنامه 2 تا فرم دارم که اون ها رو به صورت DLL در آوردم .
برای مثال فرم 1 و فرم 2 .
حالا میخوام یک سری اطلاعات رو از فرم 1 به فرم 2 بفرستم و برعکس . اما فقط میشه یکی از فرم ها رو در رفرنس اون یکی اضافه کرد تا بشه به کنترل ها و بخش های اون یکی دسترسی پیدار کرد.
برای مثال فرم 1 رو در فرم 2 add کردم :

import FormDLL

Dim FRM As New FormDLL.Form1
FRM.Label.Text = "Test2"

برای مثال به صورت بالا . اما دیگه نمیشه همین کار رو برای فرم1 انجام داد. یعنی فرم2 رو در فرم یک اضافه کرد . مثل زیر:

import FormDLL2

Dim FRM As New FormDLL2.Form2
FRM.Label1.Text = "Test2"

همونطور که گفتم هر دو فرم رو به صورت DLL در آوردم .
آیا راهی هست که بشه این کار رو کرد؟
ممنون میشم کمک کنید.

shadmehrshadow1
09-11-2013, 11:19
اینم پیغامی که هنگام اضافه کردن DLL به DLL دوم میده :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Msba
09-11-2013, 19:51
اینگونه نوشتن را صحیح نمی دانم چراکه در صورتیکه هم جواب دهد مدیریت آن سخت خواهد بود.
بهتر است تا ابتدا یک پروژه ی سراسری وجود داشته باشد و سپس ارتباط بین پروژه های فرم های دیگر را هندل کند. اینگونه خطای کامپایلر مبنی بر loop ایجاد نمی شود. این حالت در C هم به وجود می آید زمانی که include های این چنینی داشته باشیم.
برای کامپایلر همچین چیزی نوشته اید:
.
.
.
اولی: لیوان کو؟
دومی: آب رو بده!
اولی: لیوان کو؟
دومی: آب رو بده!
اولی: لیوان کو؟
دومی: آب رو بده!
و تا N .
هر دو نیازمند یک منبع هستند که در دیگری است و با کامپایل شدن آن نیاز است تا فراخواننده نیز کامپایل شود با کامپایل فراخواننده دوباره فراخوانی اولی به وجود می آید و با فراخوانی اولیه دوباره فراخواننده باید کامپایل شود.
در C/C++ با استفاده از #ifdef می توان این خطای صحیح را تاجایی رفع اشکال کرد اما در C# تا به حال دنبال Preprocessor ها نبوده ام.
این هم یک مثال ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) برای وجود پروژه ی مدیر. (عذرخواهی چون یه کم نامرتبه اون هم چون در 20 ثانیه ساخته شد.)

موفق باشید.