Tags:

Error : cannot load dll lib

Traceback (most recent call last):
File "C:\Users\Ekkasit\Desktop\Emotiv Python EEG\eeg_logger.py", line 44, in
eEvent = libEDK.IEE_EmoEngineEventCreate()
NameError: name 'libEDK' is not defined

พอดีผมจะรัน sdk ของ Emotiv ที่ไว้ใช้ดึง ค่าจาก Emotiv EEG แต่พอรันแล้วมันติดปัญหาตรงนี้อ่ะครับ
มีใครพอจะทราบวิธีแก้มั้ยครับ

อันนี้บางส่วนจากโค้ดหลักครับ
try :
if sys.platform.startswith('win32'):
libEDK = cdll.LoadLibrary("edk.dll")
if sys.platform.startswith('linux'):
srcDir = os.getcwd()
libPath = srcDir + "/libedk.so"
libEDK = CDLL(libPath)
except :
print 'Error : cannot load dll lib'
.
.
.
.
.
.
write = sys.stdout.write
eEvent = libEDK.IEE_EmoEngineEventCreate()

รันบน python 2.7.11 ครับ
+ พอจะมีวิธี convert python 2 เป็น python 3 มั้ยครับ

Get latest news from Blognone
By: bongikairu
ContributoriPhone
on 26 June 2016 - 12:59 #922008

จาก error เข้าใจว่ามันไม่ได้เข้าทำงานใน if หน่ะครับ ทำให้ไม่เคย set ค่า libEDK ว่าหลังจากพยายาม load dll แล้ว libEDK มันมาจริงๆ ไหมหน่ะครับ

By: sukoom2001
ContributorAndroidUbuntu
on 27 June 2016 - 18:11 #922233
sukoom2001's picture
  • ลอง print sys.platform ดูครับว่าได้ค่าอะไร
  • convert code python จาก 2 ไป 3 ลองดู 2to3
By: nuth16813
ContributoriPhoneAndroidWindows
on 27 June 2016 - 22:24 #922267

ถ้ารันแค่

libEDK = cdll.LoadLibrary("edk.dll")

จะได้แบบนี้อะครับ

Traceback (most recent call last):
File "C:\Users\Ekkasit\Desktop\Emotiv Python EEG\eeg_logger.py", line 16, in
libEDK = cdll.LoadLibrary("edk.dll")
File "C:\Python27\lib\ctypes__init__.py", line 443, in LoadLibrary
return self._dlltype(name)
File "C:\Python27\lib\ctypes__init__.py", line 365, in init
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 is not a valid Win32 application

By: luckyman
ContributoriPhoneAndroidRed Hat
on 28 June 2016 - 19:00 #922491

platform ต้องตรงกันนะครับ
ถ้าใช้ python 32-bit ต้องใช้ dll จาก win32
ถ้าใช้ python 64-bit (amd64) ก็ต้องใช้ dll จาก win64