Aug 11, 2010 17:59
я реально гений.
за день собрал рабочий прототип библиотеки для доступа к OPC серверу.
средняя цена за такой фреймворк - 500$, и выше.
как обычно, гениальность пришлось доставать из чулана не просто так - найденный бесплатный кусок говно-кода содержал такие перлы, что я использовал его только для отслеживания цепочки вызовов native OPC интерфейсов.
вот парочка примеров чудо-кода :
1.
if ((dwAccessRights && OPC_READABLE) != OPC_READABLE){ // чувствуете, да?
throw OPCException("Item is not readable");
}
2.
LONG result = RegConnectRegistry(hostName, HKEY_LOCAL_MACHINE, &remoteRegHandle);
if (SUCCEEDED(result)){ ... }
это более тонкий момент, но он стоил мне получаса времени. дело в том, что RegConnectRegistry, как и все функции работы с реестром, возвращает LONG, в случае ошибки доступа она вернет ERROR_ACCESS_DENIED = 5L.
тогда как макрос SUCCEEDED это
#define SUCCEEDED(Status) ((HRESULT)(Status) >= 0)
и проверяют им HRESULT, который меньше 0 в случае ошибки.
чувствуете, да?
opc,
говно-код