在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一直很困惑下面ruby中使用
Win32API.new(dllname, proc, import, export)
加载名为dllname的DLL,生成API函数proc的对象。在import中指定proc的参数类型列表,在export中指定proc返回值的类型。 使用下列字符串或数组来指定类型。
若import为
数据类型的对应关系在下面文件中定义的 C:\ruby\lib\ruby\gems\1.8\gems\windows-api-0.4.0\lib\windows\api.rb
# Verbose data types that can be used instead of single letters
DATA_TYPES = { 'ATOM' => 'I', 'BOOL' => 'B', 'BOOLEAN' => 'B', 'BYTE' => 'I', 'CALLBACK' => 'K', 'CHAR' => 'I', 'COLORREF' => 'L', 'DWORD' => 'L', 'DWORDLONG' => 'L', 'DWORD_PTR' => 'P', 'DWORD32' => 'I', 'DWORD64' => 'L', 'HACCEL' => 'L', 'HANDLE' => 'L', 'HBITMAP' => 'L', 'HBRUSH' => 'L', 'HCOLORSPACE' => 'L', 'HCONV' => 'L', 'HDC' => 'L', 'HFILE' => 'I', 'HKEY' => 'L', 'HFONT' => 'L', 'HINSTANCE' => 'L', 'HKEY' => 'L', 'HLOCAL' => 'L', 'HMENU' => 'L', 'HMODULE' => 'L', 'HRESULT' => 'L', 'HWND' => 'L', 'INT' => 'I', 'INT_PTR' => 'P', 'INT32' => 'I', 'INT64' => 'L', 'LANGID' => 'I', 'LCID' => 'L', 'LCTYPE' => 'L', 'LONG' => 'L', 'LONGLONG' => 'L', 'LONG_PTR' => 'P', 'LONG32' => 'L', 'LONG64' => 'L', 'LPARAM' => 'P', 'LPBOOL' => 'P', 'LPBYTE' => 'P', 'LPCOLORREF' => 'P', 'LPCSTR' => 'P', 'LPCTSTR' => 'P', 'LPCVOID' => 'L', 'LPCWSTR' => 'P', 'LPDWORD' => 'P', 'LPHANDLE' => 'P', 'LPINT' => 'P', 'LPLONG' => 'P', 'LPSTR' => 'P', 'LPTSTR' => 'P', 'LPVOID' => 'L', 'LPWORD' => 'P', 'LPWSTR' => 'P', 'LRESULT' => 'P', 'PBOOL' => 'P', 'PBOOLEAN' => 'P', 'PBYTE' => 'P', 'PHKEY' => 'P', 'SC_HANDLE' => 'L', 'SC_LOCK' => 'L', 'SERVICE_STATUS_HANDLE' => 'L', 'SHORT' => 'I', 'SIZE_T' => 'P', 'TCHAR' => 'L', 'UINT' => 'I', 'UINT_PTR' => 'P', 'UINT32' => 'I', 'UINT64' => 'L', 'ULONG' => 'L', 'ULONGLONG' => 'L', 'ULONG_PTR' => 'P', 'ULONG32' => 'L', 'ULONG64' => 'L', 'USHORT' => 'I', 'USN' => 'L', 'WINAPI' => 'L', 'WORD' => 'I' }
如MSDN上的函数原型为:
one of the following error values.
ruby调用时方法为:Win32API.new("kernel32", "WinExec", ['P','L'], 'L') |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论