Я пытаюсь заставить работать мой импорт DLL.Это текущий импорт в C #
[DllImport(SpectrumDll, ExactSpelling = true, PreserveSig = true, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
//SCLIB_ERROR_CODE DLLEXPORT SPECTRUM_SetUserFloat(char *name, float value, int index);
public static extern SCLIB_ERROR_CODE SPECTRUM_SetUserFloat([MarshalAs(UnmanagedType.LPStr)] string name, float value, int index);
Это вызов C из файла заголовка dll.
SCLIB_ERROR_CODE DLLEXPORT SPECTRUM_SetUserFloat(char *name, float value, int index);
Так я его называю в коде.
public bool SetUserFloat(string varName, float value, int index = 0)
{
try
{
var res = spectrum_dll_import.SPECTRUM_SetUserFloat(varName, value, index);
return true;
}
catch (Exception exc)
{
return false;
}
}
Функция, с которой она работает, сама отсекает часть за запятой.Итак, если я хочу написать «5.343F», значение, которое устанавливает C DLL, равно «5.000»
Что-то не так с моим параметром «dllimport» и «float»?
Спасибо за помощь!