KiZsLeG Posted July 11, 2013 Posted July 11, 2013 Hello Guys, Just want to ask for help or guidance on why DllCall doesn't work with LoadLibrary but it works using the function _WinAPI_LoadLibrary. What's wrong with my DLLCall. #include <WinAPI.au3> ;local $module = _WinAPI_LoadLibrary("user32.dll") ; Working Local $module = DllCall("Kernel32.dll", "Ptr", "LoadLibrary", "Str", "user32.dll") ; Not Working if ($module) Then msgbox(0,"Success","Success!") Else MsgBox(0,"Failed", "Failed!") EndIf Thanks,
water Posted July 11, 2013 Posted July 11, 2013 You need to extend the error checking of your script. What is the value of @error after DllCall? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Solution Malkey Posted July 11, 2013 Solution Posted July 11, 2013 The DllCall function returns an array. #include <WinAPI.au3> Local $module = _WinAPI_LoadLibrary("user32.dll") ; Working ConsoleWrite($module & @LF) Local $module = DllCall("Kernel32.dll", "Ptr", "LoadLibrary", "Str", "user32.dll") ; Not Working ConsoleWrite($module[0] & @LF) If $module[0] Then MsgBox(0, "Success", "Success!") Else MsgBox(0, "Failed", "Failed!") EndIf
water Posted July 11, 2013 Posted July 11, 2013 As DllCall returns an array I would check for an array: #include <WinAPI.au3> Local $module = _WinAPI_LoadLibrary("user32.dll") ; Working ConsoleWrite($module & @LF) Local $module = DllCall("Kernel32.dll", "Ptr", "LoadLibrary", "Str", "user32.dll") ; Not Working ConsoleWrite($module[0] & @LF) If IsArray($module) Then MsgBox(0, "Success", "Success!") Else MsgBox(0, "Failed", "Failed!") EndIf This is sensible because Autoit will support empty arrays with the next version. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
water Posted July 11, 2013 Posted July 11, 2013 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now