ไม่สามารถแอดไฟล์ dll ได้ ไม่รู้ว่าเป็นเพราะอะไร ช่วยทีค่ะT_T (มีรูปอยู่ด้านในค่ะ)
อ้าว หรอคะ ขอบคุณมากๆเลยน้าคะ หาวิธีแก้อยู่ตั้งนาน เดี๋ยวจะขอไฟล์ dll จากเมืองนอกมาใหม่ค่ะ
Date :
2014-05-07 13:14:55
By :
mayapopy
ถ้าเป็น dll ที่มาจากภาษาอื่น ไม่ได้ถูกพัฒนามาจาก .Net Framework การที่จะเอามา Add Reference แบบที่ทำอยู่นี้ไม่ได้ครับ แต่จะสามารถทำได้แค่นำเข้ามาวางอ้างอิงเป็นไฟล์ในโปรเจคได้เท่านั้น เพื่อให้โปรแกรมเรามองเห็น dll ก่อนเป็น path แรก ส่วนใหญ่ก็เอาไปวางได้ที่ Debug หรือไม่ก็ Release
ส่วนวิธีการเชื่อมต่อ dll ประเภทนี้ ต้องทำ InteropService Call Dll เองเช่น
Code (C#)
[System.Runtime.InteropServices.DllImport("gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern System.IntPtr CreateRoundRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nWidthEllipse, int nHeightEllipse);
จะทราบได้อย่างไรว่า dll ที่เราเอามาใช้นั้นมีชื่อ Method ว่าอะไร ชื่อ parameter ชนิด parameter เป็นแบบไหน อันนี้มีวิธีการอยู่คือ
1. ติดต่อ provider เอาเอกสารมา ส่วนใหญ่จะทำมาเป็นเอกสารสำหรับ Developer และมีตัวอย่าง Source code ให้ถ้าโชคดี
2. ถ้าไม่มีเอกสารอะไรเลย ให้ทำการ download Dependency มาใช้งาน เพื่อเปิดดูว่าข้างใน dll มีชื่อ Function อะไร ชนิดข้อมูลอะไร มีการอ้างอิงไปยัง dll ตัวอื่นอีกหรือไม่ (แน่นอนว่าถ้ามีการอ้างอิงไปยัง dll ตัวอื่น จขกท. ก็จำเป็นจะต้องไปเสาะหามาวางไว้ที่ Debug กับ Release ด้วยเหมือนกัน) แต่ถ้าอ้าง dll ที่อยู่ใน windows หรือ system ที่มีการติดตั้งมาจาก os ก็ไม่ต้องเอาไปวาง เพราะเครื่องอื่นๆ ก็ย่อมมีเหมือนๆ กัน
โหลด dependency จาก http://www.dependencywalker.com/
Date :
2014-05-07 15:03:01
By :
gunnermontana
โห ขอบคุณ คุณGunner มากๆเลยนะคะ ละเอียดมากๆเลยค่ะ พอดีกำลังหัดเขียนโปรแกรมติดต่อกับพวกอุปกรณ์ฮาร์ดแวร์อยู่น่ะค่ะ ปกติถนัดพวกดาต้าเบสมากกว่า แต่บริษัทดันขายสินค้าใหม่ เลยต้องมาเขียนโปรแกรมทางด้านนี้ซึ่งไม่ถนัดเลยT_T แล้วเขาจะให้พวก sdk มา(ตอนแรกๆก็ไม่่รู้ว่ามันคืออะไร) แต่ใน Manual ของ SDK มันจะมีบอกพวก พารามิเตอร์ วิธีการใช้งานฟังก์ชั่นต่างๆอยู่แล้วน่ะค่ะ ก็เลยไม่ห่วงเรื่องนี้เท่าไหร่ ห่วงเรื่อง Coding มากกว่า เพราะไม่เคยเขียน แต่ความรู้ที่คุณ Gunner กับ Admin ให้มาถือเป็นความรู้ใหม่หมดเลยค่ะ ขอบคุณมากๆๆนะคะ เดี๋ยวจะลองเอาไปใช้ดู
ว่าแต่...ถามหน่อยได้ไหมคะ มีวิธีตรวจสอบไฟล์ dll อย่างง่ายๆไหมคะ ว่าพัฒนามาจาก vb6 หรือ dot net เวลาส่งให้ลูกค้าจะได้ส่งไม่ผิด อะไรแบบนี้น่ะค่ะ (แหะๆ ตอนนี้คิดวิธีง่ายสุดคือลองมาแอดดูว่ามัน error แบบนี้หรือเปล่า^^)
ขอบคุณอีกครั้งค่า^^
Date :
2014-05-07 17:02:54
By :
mayapopy
ดีจังเลยได้ความรู้ใหม่อีกแล้ว ทดลองดูแล้วค่ะ เช็คได้จริงๆด้วย ขอบคุณมากๆเลยนะคะ คุณ Gunner Montana
ปล. พอดีหยุดหลายวันเลยไม่ได้มาดู ขอโทษทีตอบช้านะคะ^^
Date :
2014-05-12 15:04:32
By :
mayapopy
Load balance : Server 03