Я пытаюсь использовать projAPI (http://trac.osgeo.org/proj/wiki/ProjAPI) для расчета прогнозов. К сожалению, документация … ну … не очень хорошая. Кроме того, я не очень хорош в программировании на C ++. Настройка проекта в VisualStudio — это некая ракетостроение. В любом случае, настройки следующие:
Проект содержит один cpp для тестирования:
#include "../include/proj_api.h"
int main(int argc, char** argv){
projPJ projection;
projection = pj_init_plus("+proj=merc +ellps=clrk66 +lat_ts=33");
}
…составление как очарование …
Приходя в pj_init_plus
вылетает:
Debug Assertion Failed!
Program: ...cuments\visual studio 2012\Projects\testLib\Debug\testLib.exe
File: f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c
Line: 1322
Expression: _CrtIsValidHeapPointer(pUserData)
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
ignore вызывает вторую ошибку:
Debug Assertion Failed!
Program: ...cuments\visual studio 2012\Projects\testLib\Debug\testLib.exe
File: f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c
Line: 1328
Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
…главная проблема: где ошибка? мне не удалось собрать библиотеку? ИЛИ ЖЕ я провалил настройку проекта?
компиляция библиотеки:
=> запустить vcvars32.bat из визуального дерева студии, то
$cd to the downloaded directory
$nmake /f makefile.vc
$nmake /f makefile.vc install-all
проверил C: \ PROJ Каталог: все есть, скопировал lib и включил каталоги в мой проект и попробовал.
Итак, я получил это работает. Очевидно, что проблема возникает только в режиме отладки. Я переключился в режим релиза, и он работает.
я думаю, что lib запускает функцию, которая каким-то образом убивает отладочный хук …
Похоже, что он ожидает истинный указатель кучи, попробуйте выделить указатель с достаточным пространством для вашей строки (запомните дополнительный нулевой байт!), Передайте strcpy, передайте это.