Я пытаюсь вызвать P / Invoke из библиотеки C из F # и столкнулся со специфической проблемой У меня есть модуль, содержащий все мои extern
функции. Базовая библиотека C имеет две функции с одинаковым именем, но разными аргументами. Это, конечно, недопустимо в модуле F #.
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.