Winapi 从Julia调用Win32函数

Winapi 从Julia调用Win32函数,winapi,julia,Winapi,Julia,我想使用ccall从julia调用文件I/O函数(即CreateFile、WriteFile等) 要从win32 api调用任何函数,是否必须在ccall中将库名称指定为参数?如果是,如何确定相应dll的名称?是您确实需要提供库名称。ccall的第一个参数是(:function,“library”)形式的元组。因此,如果您正在调用GetTickCount,那么它将是(:GetTickCount,“kernel32”) 您还需要指定调用约定、返回值类型和参数类型。在GetTickCount的情况下

我想使用ccall从julia调用文件I/O函数(即CreateFile、WriteFile等)


要从win32 api调用任何函数,是否必须在ccall中将库名称指定为参数?如果是,如何确定相应dll的名称?

是您确实需要提供库名称。
ccall
的第一个参数是
(:function,“library”)
形式的元组。因此,如果您正在调用
GetTickCount
,那么它将是
(:GetTickCount,“kernel32”)

您还需要指定调用约定、返回值类型和参数类型。在
GetTickCount
的情况下,它将是:

tickCount = ccall( (:GetTickCount, "kernel32"), stdcall, UInt32, () )
要了解调用约定、返回值类型和参数类型,请在MSDN上查找函数。例如,
GetTickCount
在这里:。请注意,页面的最底部是一个表,其中包含导出函数的库的名称。在本例中,
kernel32

这里有一些细节: