mayhem1121
New member
קבלת struct מ dll ב c#
יש לי אפליקציה ב c# ו 3 קבצי dll.
אחד (בשם calc) שמבצע בין היתר חיפוש בינארי ומציג הודעות למסך.
אחד בשם (person) שמכיל struct עם 3 משתנים.
אחד בשם (person2) שמכיל struct עם 6 משתנים.
(בעתיד יהיו קבצים נוספים שיכילו struct-ים בגדלים שונים).
אני מעוניין שהמשתמש יבחר דרך ה GUI איזה dll להפעיל (person או person2) שערכי ה struct יעברו ל calc ושהתוצאה תוצג למסך.
אני מבצע אתחול ל calc באפליקציה (ומעביר את שם ה dll שנבחר - נניח person)
foreach( Type type in DLL.GetExportedTypes() )
{
calcDll = Activator.CreateInstance( type );
}calcDll.main( dllname );
בתוך calc.dll אני מבצע אתחול ל dll אותו המשתמש בחר כלומר person.dll
foreach( Type type in DLL.GetExportedTypes() )
{
selectedDll = Activator.CreateInstance( type );
selectedDll.init(); }
בתוך init של ה dll אני מאתחל את ה struct המתאים כמערך של struct-ים.
namespace person
{
public struct UnitControl
{
public string name; public double age; public int id; }; public class person { public void init() { UnitControl[] unitParameters = new UnitControl[2]; unitParameters[0].name = "a"; unitParameters[0].age = 24.4; unitParameters[0].id = 111; unitParameters[1].name = "b"; unitParameters[1].age = 17.8; unitParameters[1].id = 222; } }}
כאמור יכול להיות מצב שב dll אחר יהיו יותר מ 3 משתנים ב struct.
אני מצליח לאתחל את ה struct, אבל לא מצליח להשתמש בו כשאני חוזר ל calc.
אשמח לעזרה איך ניתן להשתמש בו כאשר ה struct לא ידוע ולא ניתן להגדיר אותו ב calc (ואז להציב לתוכו).
מקווה שהייתי ברור, תודה לעוזרים!
יש לי אפליקציה ב c# ו 3 קבצי dll.
אחד (בשם calc) שמבצע בין היתר חיפוש בינארי ומציג הודעות למסך.
אחד בשם (person) שמכיל struct עם 3 משתנים.
אחד בשם (person2) שמכיל struct עם 6 משתנים.
(בעתיד יהיו קבצים נוספים שיכילו struct-ים בגדלים שונים).
אני מעוניין שהמשתמש יבחר דרך ה GUI איזה dll להפעיל (person או person2) שערכי ה struct יעברו ל calc ושהתוצאה תוצג למסך.
אני מבצע אתחול ל calc באפליקציה (ומעביר את שם ה dll שנבחר - נניח person)
var DLL = Assembly.LoadFile( DllDirectory + "\\" + "Calc" + DLL_EXTENSION );foreach( Type type in DLL.GetExportedTypes() )
{
calcDll = Activator.CreateInstance( type );
}calcDll.main( dllname );
בתוך calc.dll אני מבצע אתחול ל dll אותו המשתמש בחר כלומר person.dll
var DLL = Assembly.LoadFile( dllName );foreach( Type type in DLL.GetExportedTypes() )
{
selectedDll = Activator.CreateInstance( type );
selectedDll.init(); }
בתוך init של ה dll אני מאתחל את ה struct המתאים כמערך של struct-ים.
namespace person
{
public struct UnitControl
{
public string name; public double age; public int id; }; public class person { public void init() { UnitControl[] unitParameters = new UnitControl[2]; unitParameters[0].name = "a"; unitParameters[0].age = 24.4; unitParameters[0].id = 111; unitParameters[1].name = "b"; unitParameters[1].age = 17.8; unitParameters[1].id = 222; } }}
כאמור יכול להיות מצב שב dll אחר יהיו יותר מ 3 משתנים ב struct.
אני מצליח לאתחל את ה struct, אבל לא מצליח להשתמש בו כשאני חוזר ל calc.
אשמח לעזרה איך ניתן להשתמש בו כאשר ה struct לא ידוע ולא ניתן להגדיר אותו ב calc (ואז להציב לתוכו).
מקווה שהייתי ברור, תודה לעוזרים!