我正在尝试使用 projAPI ( http://trac.osgeo.org/proj/wiki/ProjAPI ) 来计算预测。可悲的是,文档......嗯......不是那么好。另外,我在 C++ 编程方面也不是很好。VisualStudio 中的项目设置是一些火箭科学。无论如何,设置如下:
- VC++ 目录 => 包含目录 => 添加了 lib 的包含目录
- VC++ 目录 => 库目录 => 添加了 lib 目录,包含 .lib 文件
- 链接器 => 输入 => 添加。依赖项 => 添加了“proj.lib”和“proj_i.lib”
项目包含一个用于测试目的的 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.
忽略会引发第二个错误:
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.
...主要问题是:错误在哪里?我编译库失败了吗?或者我的项目设置失败了吗?
编译库:
=>从 Visual Studio 树中运行VCVARS32.BAT ,然后
$cd to the downloaded directory
$nmake /f makefile.vc
$nmake /f makefile.vc install-all
检查C:\PROJ目录:一切都在那里,将 lib 和包含目录复制到我的项目中并尝试了它。