ฉันกำลังสร้าง DLL "ปลั๊กอิน" สำหรับ EXE EXE เรียกใช้ฟังก์ชันใน DLL โดยมี Object เป็นพารามิเตอร์ และไปจากที่นั่น
ทุกอย่างทำงานได้ดีและสวยงามจนกระทั่งฉันแยกมันออกเป็นหัวข้อใหม่ ข้อผิดพลาดนี้เกิดขึ้น
พยายามอ่านหรือเขียนหน่วยความจำที่ได้รับการป้องกัน นี่เป็นข้อบ่งชี้ว่าหน่วยความจำอื่นเสียหาย
เมื่อรันโค้ดนี้บนวัตถุในเธรดใหม่:
protected object GetPropertyValue(object obj, string PropertyName)
{
return obj.GetType().InvokeMember(PropertyName, BindingFlags.GetProperty, null, obj, new object[] { });
}
ข้างต้นกำลังพยายามเข้าถึงคุณสมบัติบนวัตถุ COM การเปลี่ยนฟังก์ชั่นเป็น 'สาธารณะ' จะไม่ส่งผลกระทบต่อมัน รหัสใช้งานได้ดี แต่ถ้าฉันใช้เพียงเธรดเดียว
สิ่งที่เกิดขึ้นชัดเจน: เธรดใหม่ไม่สามารถเข้าถึงตัวแปรใน EXE ฉันจะแก้ไขปัญหานี้ได้อย่างไร? การไม่ใช้เธรดไม่ใช่ตัวเลือกที่ใช้การได้
ขอบคุณสำหรับความช่วยเหลือใด ๆ