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 回答