Я пытаюсь P/вызывать библиотеку C из F # и столкнулся с особой проблемой. У меня есть модуль, содержащий все мои функции extern
. В базовой библиотеке C есть две функции с одинаковым именем, но разные аргументы. Это, конечно, не допускается в модуле F #.Перегрузка функции P/Invoke
module C =
open System.Runtime.InteropServices
[<DllImport("libc", CallingConvention = CallingConvention.Cdecl)>]
extern int setValue(nativeint source, int value)
[<DllImport("libc", CallingConvention = CallingConvention.Cdecl)>]
extern int setValue(nativeint source, string value)
// the previous function declaration cause the following compile-time error:
// Duplicate definition of value 'setValue'
Есть ли какой-нибудь особый способ обойти это? Я не могу изменить библиотеку C.
Спасибо. Я новичок во всей P/Invoke. – pblasucci