0

Postgis Point を使用する c で Postgresql 拡張機能を作成しています。ロード後に postgis-1.5.dll の関数を呼び出そうとすると、失敗し、エラー メッセージが表示されません。これが私のコードの一部です。

    Point *pt =(Point*) palloc(sizeof(Point));
    bool test;
    HINSTANCE DLLHandle;
typedef bool(*ST_empty)(Point*);

ST_emptyPtr ST_empty;

    pt->x = 0.2;
    pt->y = 0.9;
DLLHandle = LoadLibrary(L"postgis-1.5.dll");
ST_empty = (ST_emptyPtr)GetProcAddress(DLLHandle,"LWGEOM_isempty"); 
if (DLLHandle != NULL){
   if(!ST_empty)
     elog(ERROR,"null ehhhh");

   test = ST_empty(p);
       elog(ERROR,"not empty");
    }

誰でも私を助けることができますか?

4

1 に答える 1

1

ソースを見ると役立つかもしれません: PostGIS Trunk の lwgeom_is_empty

確実に失敗していますか?上記のコードは、関数呼び出しからの戻り値をテストしません。以下は何をしますか?

if (!ST_empty(p))
  elog(ERROR,"not empty");

ブライアン

于 2012-12-21T21:22:58.833 に答える