Method: OpenC3::Win32API#initialize
- Defined in:
- lib/openc3/win32/win32_main.rb
#initialize(dll_name, function_name, import, export = "0") ⇒ Win32API
Returns a new instance of Win32API.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/openc3/win32/win32_main.rb', line 36 def initialize(dll_name, function_name, import, export = "0") # Convert all input parameters into either 0, S, or I @function_prototype = [import].join.tr("VPpNnLlIiCc", "0SSI") params = [] @function_prototype.split('').each do |param| params << VALUE_TYPEMAP[param] end # Get handle to dll file and add to cache if necessary dll_handle = DLL_CACHE[dll_name] ||= Fiddle.dlopen(dll_name) # Create Fiddle::Function necessary to call a function with proper return type and name @function = Fiddle::Function.new(dll_handle[function_name], params, VALUE_TYPEMAP[export.tr("VPpNnLlIi", "0SSI")]) end |