Обследование поведения вызова указанной функции показало, что она отражает "наведенную" ошибку. У себя мне удалось ее вызвать следующим образом:
а) была очищена переменная path, которая отвечает за места размещения не только вызываемых файлов, к которым можно обращаться без указания пути, но и за DLL библиотеки.
б) получили ошибку
в) добавили в переменную path единственный каталог, то в котором лежит библиотека proj.dll от PROJ4
г) все заработало
е) проверяем значения установленной переменной path:
- set path=C:\WINXP.X64\System32\Wbem;C:\OSGeo4W\bin - не работает
- set path=C:\WINXP.X64\System32\Wbem;C:\OSGeo4W\bin; - работает
- set path=C:\WINXP.X64\System32\Wbem;C:\OSGeo4W\bin - работает
- set path=C:\OSGeo4W\bin - работает
- set path=C:\OSGeo4W\bin ; - не работает
ИТОГ:
Если в имени каталога, указанного в path, где лежит proj.dll, НЕ proj_api.dll есть пробел в конце, видимый, если потом идет ;(точка с запятой) , или не видимый, если это конец строки PATH, то это воспринимается как НЕ найденная библиотека proj.dll. Если не найден путь к библиотеке proj.dll - получаем ошибку об отсутствующей библиотеке proj_api.dll.
По крайней мере, это ситуация, которая вылезла сразу, после игр с переменной PATH. Поскольку, я сам переменную path, не заполнял, видимо этот пробел в нее дописал установщик OSGeo4W. Но т.к. у меня путь к PROJ4, был прописан отдельно и раньше, чем путь C:\OSGeo4W\bin, то у меня этой ошибки и не было.
Попробуйте напрямую указать каталог с PROJ.dll в PATH, может ошибка пройдет?