プロジェクションの計算に projAPI ( http://trac.osgeo.org/proj/wiki/ProjAPI ) を使用しようとしています。悲しいことに、ドキュメンテーションは...まあ...あまり良くありません。また、私は C++ プログラミングが得意ではありません。VisualStudio でのプロジェクトのセットアップは、ロケット サイエンスです。とりあえず設定は以下の通り。
- VC++ ディレクトリ => インクルード ディレクトリ => lib のインクルード ディレクトリを追加
- VC++ ディレクトリ => ライブラリ ディレクトリ => .lib ファイルを含む lib ディレクトリを追加
- リンカー => 入力 => Addit. 依存関係 => 「proj.lib」と「proj_i.lib」を追加
プロジェクトには、テスト目的で 1 つの 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.
無視すると、2 番目のエラーが表示されます。
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 および include ディレクトリをプロジェクトにコピーして試しました。