Звучит так, как будто вы связываете FTD2XX.DLL с вашим приложением.
Вы не должны этого делать, вам следует использовать последнюю DLL, установленную в системный каталог Windows драйвером FTDI.Если у вас есть старая версия библиотеки DLL в каталоге приложения, а у пользователя есть новые драйверы (возможно, установленные на другом устройстве на основе FTDI), у вас могут возникнуть всевозможные проблемы.
В качестве бонуса,это решает вашу проблему в большинстве случаев: если FTD2XX.DLL не установлен в системе, вы получите исключение при попытке выполнить p / invoke, которое вы можете перехватить.
Однако, чтобы избежать ошибки совершенновам нужно будет сделать ту же проверку, что и FTD2XX.DLL для внутреннего использования (поскольку DLL, очевидно, может существовать в системе без какого-либо драйвера).Например, проверка того, указан ли драйвер в реестре под HKLM\System\CurrentControlSet\services
, была бы более надежной проверкой, чем та, что у вас есть.Все еще не уверен, эквивалентен ли он собственному чеку FTDI.