คือผมจะเขียนโปรแกรมไปอ่านข้อมูลที่ถูก pack ข้อมูลไว้ โดยการจะ unpack ข้อมูลได้นั้น จะต้องใช้ library client access ของ ibm ตัวหนึ่งที่เป็น dll จะเป็นไปได้ไหมครับว่าเรา(python)จะเรียกใช้งาน ตัว dll ตัวนั้นมาใช้งานนะครับ เพราะผมเห็นใน .net เขาใช้งานได้ โดยเรียกตัว dll เข้ามาแล้วก็เรียกใช้งานฟังชั่นต่างๆ ใน dll ได้นะครับ
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
น่าจะใช้ ctypes library ได้นะครับ ผมเคยลองเขียนให้ call dll library ที่เขียนมาสำหรับ c++ ได้นะครับ แต่ไม่ได้เอามาใช้งานจริงจัง คุณ khao_lek ลองดูนะครับ
ขอบคุณครับ ขอไปลองดูก่อนครับ
ถ้าเป็น C Interface ใช้ Ctypes ได้เลยครับ น่าจะง่ายที่สุดแล้ว
แต่ถ้าเป็น C++ นี่ผมเข้าใจว่าใช้ Ctype ไม่ได้นะครับ ทางที่ดีที่สุดน่าจะเป็น Boost.Python
ตอนนี้ผมดึง dll เข้ามาได้แล้วครับแต่ผมงงกับการเรียกใช้งานฟังชั่น(หรือเปล่า ?)ใน dll ผมเลยเอาตัวอย่างใน .net มาให้ดูนะครับ ผมไม่รู้ว่าเรียกใช้อย่างไร vb.net ก็ไม่เคยเขียน ไม่เข้าใจ concept มันเลยคับ
Public Shared Function PackedDecimalStringToDouble(ByVal strPackedDecimal As String, ByVal Digits As Integer, ByVal DecimalPosition As Integer) As Double Const IBMEBCDICThaiCode As Integer = 20838 Dim packedConverter As cwbx.PackedConverterClass Dim EBCDICEncoding As System.Text.Encoding Dim bytes() As Byte Try EBCDICEncoding = System.Text.Encoding.GetEncoding(IBMEBCDICThaiCode) bytes = EBCDICEncoding.GetBytes(strPackedDecimal) packedConverter = New cwbx.PackedConverter packedConverter.Digits = 11 packedConverter.DecimalPosition = 2 Return packedConverter.FromBytes(bytes) Catch ex As Exception Return Nothing End Try End Functionดูเหมือนว่าจะเป็น dll ของ .net ผมแนะนำให้ใช้ ironpython ซะเลย
กำลังศึกษาเหมือนกันครับ
ครับ คิดว่า ironpython จะตรงสุด เท่าที่ลองค้น ๆ ดูนะครับ แต่ใช้ไม่เป็น ถ้าทำได้แล้ว ช่วยสอนด้วยนะครับ