📄 mitab_dyn.pas
字号:
mitab_c_get_collection_multipoint_ref: Tmitab_c_get_collection_multipoint_ref;
mitab_c_set_collection_region: Tmitab_c_set_collection_region;
mitab_c_set_collection_polyline: Tmitab_c_set_collection_polyline;
mitab_c_set_collection_multipoint: Tmitab_c_set_collection_multipoint;
mitab_c_get_projection_info: Tmitab_c_get_projection_info;
mitab_c_set_projection_info: Tmitab_c_set_projection_info;
mitab_c_get_datum_info: Tmitab_c_get_datum_info;
mitab_c_set_datum_info: Tmitab_c_set_datum_info;
mitab_c_get_affine_params: Tmitab_c_get_affine_params;
mitab_c_set_affine_params: Tmitab_c_set_affine_params;
mitab_c_is_field_indexed: Tmitab_c_is_field_indexed;
mitab_c_is_field_unique: Tmitab_c_is_field_unique;
mitab_c_set_quick_spatial_index_mode: Tmitab_c_set_quick_spatial_index_mode;
procedure MITAB_load;
function MITAB_LibOK: boolean;
implementation
uses
SysUtils,
{$IFDEF MSwindows}
Windows;
{$ENDIF}
{$IFDEF LINUX}
Libc;
{$ENDIF}
var
{$IFDEF MSwindows}
MITABDLL_Handle: THandle;
{$ENDIF}
{$IFDEF LINUX}
MITABDLL_Handle: Pointer;
{$ENDIF}
function GenericGetProcAddress(lpProcName: PChar; length: integer): Pointer;
begin
{$IFDEF MSwindows}
result:= GetProcAddress(MITABDLL_Handle,PAnsiChar('_'+lpProcName+'@'+inttostr(length)));
{$ENDIF}
{$IFDEF LINUX}
result:= dlsym(MITABDLL_Handle, lpProcName);
{$ENDIF}
end;
function MITAB_LibOK: boolean;
begin
result:= (MITAB_LoadErr=0);
end;
// To test if a function was found in the DLL before using it, do like this:
// if @mitab_c_create<>nil then mitab_c_create(.....)
procedure MITAB_load;
begin
{$IFDEF MSwindows}
MITABDLL_Handle:= LoadLibrary(pchar(LibPath));
{$ENDIF}
{$IFDEF LINUX}
MITABDLL_Handle:= dlopen(Pchar(LibPath), RTLD_LAZY);
{$ENDIF}
if Pointer(MITABDLL_Handle)<>nil then
begin
@mitab_c_getlibversion:= GenericGetProcAddress('mitab_c_getlibversion',0);
if @mitab_c_getlibversion<>nil then // does the function exist?
begin
if mitab_c_getlibversion=Libversion then // does it return the correct number?
begin
MITAB_LoadErr:= 0;
@mitab_c_add_field:= GenericGetProcAddress('mitab_c_add_field',28);
@mitab_c_close:= GenericGetProcAddress('mitab_c_close',4);
@mitab_c_create:= GenericGetProcAddress('mitab_c_create',44);
@mitab_c_create_feature:= GenericGetProcAddress('mitab_c_create_feature',8);
@mitab_c_destroy_feature:= GenericGetProcAddress('mitab_c_destroy_feature',4);
@mitab_c_getlasterrormsg:= GenericGetProcAddress('mitab_c_getlasterrormsg',0);
@mitab_c_getlasterrormsg_vb:= GenericGetProcAddress('mitab_c_getlasterrormsg_vb',8);
@mitab_c_getlasterrorno:= GenericGetProcAddress('mitab_c_getlasterrorno',0);
@mitab_c_get_brush_bgcolor:= GenericGetProcAddress('mitab_c_get_brush_bgcolor',4);
@mitab_c_get_brush_fgcolor:= GenericGetProcAddress('mitab_c_get_brush_fgcolor',4);
@mitab_c_get_brush_pattern:= GenericGetProcAddress('mitab_c_get_brush_pattern',4);
@mitab_c_get_brush_transparent:= GenericGetProcAddress('mitab_c_get_brush_transparent',4);
@mitab_c_get_extended_mif_coordsys:= GenericGetProcAddress('mitab_c_get_extended_mif_coordsys',4);
@mitab_c_get_feature_count:= GenericGetProcAddress('mitab_c_get_feature_count',4);
@mitab_c_get_field_as_double:= GenericGetProcAddress('mitab_c_get_field_as_double',8);
@mitab_c_get_field_as_string:= GenericGetProcAddress('mitab_c_get_field_as_string',8);
@mitab_c_get_field_as_string_vb:= GenericGetProcAddress('mitab_c_get_field_as_string_vb',16);
@mitab_c_get_field_count:= GenericGetProcAddress('mitab_c_get_field_count',4);
@mitab_c_get_field_name:= GenericGetProcAddress('mitab_c_get_field_name',8);
@mitab_c_get_field_name_vb:= GenericGetProcAddress('mitab_c_get_field_name_vb',16);
@mitab_c_get_field_precision:= GenericGetProcAddress('mitab_c_get_field_precision',8);
@mitab_c_get_field_type:= GenericGetProcAddress('mitab_c_get_field_type',8);
@mitab_c_get_field_width:= GenericGetProcAddress('mitab_c_get_field_width',8);
@mitab_c_get_font:= GenericGetProcAddress('mitab_c_get_font',4);
@mitab_c_get_font_vb:= GenericGetProcAddress('mitab_c_get_font_vb',12);
@mitab_c_get_mif_coordsys:= GenericGetProcAddress('mitab_c_get_mif_coordsys',4);
@mitab_c_get_mif_coordsys_vb:= GenericGetProcAddress('mitab_c_get_mif_coordsys_vb',12);
@mitab_c_get_parts:= GenericGetProcAddress('mitab_c_get_parts',4);
@mitab_c_get_pen_color:= GenericGetProcAddress('mitab_c_get_pen_color',4);
@mitab_c_get_pen_pattern:= GenericGetProcAddress('mitab_c_get_pen_pattern',4);
@mitab_c_get_pen_width:= GenericGetProcAddress('mitab_c_get_pen_width',4);
@mitab_c_get_projinfo:= GenericGetProcAddress('mitab_c_get_projinfo',4);
@mitab_c_get_symbol_color:= GenericGetProcAddress('mitab_c_get_symbol_color',4);
@mitab_c_get_symbol_no:= GenericGetProcAddress('mitab_c_get_symbol_no',4);
@mitab_c_get_symbol_size:= GenericGetProcAddress('mitab_c_get_symbol_size',4);
@mitab_c_get_text:= GenericGetProcAddress('mitab_c_get_text',4);
@mitab_c_get_text_angle:= GenericGetProcAddress('mitab_c_get_text_angle',4);
@mitab_c_get_text_bgcolor:= GenericGetProcAddress('mitab_c_get_text_bgcolor',4);
@mitab_c_get_text_fgcolor:= GenericGetProcAddress('mitab_c_get_text_fgcolor',4);
@mitab_c_get_text_height:= GenericGetProcAddress('mitab_c_get_text_height',4);
@mitab_c_get_text_justification:= GenericGetProcAddress('mitab_c_get_text_justification',4);
@mitab_c_get_text_linetype:= GenericGetProcAddress('mitab_c_get_text_linetype',4);
@mitab_c_get_text_spacing:= GenericGetProcAddress('mitab_c_get_text_spacing',4);
@mitab_c_get_text_vb:= GenericGetProcAddress('mitab_c_get_text_vb',12);
@mitab_c_get_text_width:= GenericGetProcAddress('mitab_c_get_text_width',4);
@mitab_c_get_type:= GenericGetProcAddress('mitab_c_get_type',4);
@mitab_c_get_vertex_count:= GenericGetProcAddress('mitab_c_get_vertex_count',8);
@mitab_c_get_vertex_x:= GenericGetProcAddress('mitab_c_get_vertex_x',12);
@mitab_c_get_vertex_y:= GenericGetProcAddress('mitab_c_get_vertex_y',12);
@mitab_c_is_interior_ring:= GenericGetProcAddress('mitab_c_is_interior_ring',8);
@mitab_c_load_coordsys_table:= GenericGetProcAddress('mitab_c_load_coordsys_table',4);
@mitab_c_next_feature_id:= GenericGetProcAddress('mitab_c_next_feature_id',8);
@mitab_c_open:= GenericGetProcAddress('mitab_c_open',4);
@mitab_c_read_feature:= GenericGetProcAddress('mitab_c_read_feature',8);
@mitab_c_set_arc:= GenericGetProcAddress('mitab_c_set_arc',52);
@mitab_c_set_brush:= GenericGetProcAddress('mitab_c_set_brush',20);
@mitab_c_set_field:= GenericGetProcAddress('mitab_c_set_field',12);
@mitab_c_set_font:= GenericGetProcAddress('mitab_c_set_font',8);
@mitab_c_set_pen:= GenericGetProcAddress('mitab_c_set_pen',16);
@mitab_c_set_points:= GenericGetProcAddress('mitab_c_set_points',20);
@mitab_c_set_projinfo:= GenericGetProcAddress('mitab_c_set_projinfo',8);
@mitab_c_set_symbol:= GenericGetProcAddress('mitab_c_set_symbol',16);
@mitab_c_set_text:= GenericGetProcAddress('mitab_c_set_text',8);
@mitab_c_set_text_display:= GenericGetProcAddress('mitab_c_set_text_display',48);
@mitab_c_write_feature:= GenericGetProcAddress('mitab_c_write_feature',8);
@mitab_c_get_collection_region_ref:= GenericGetProcAddress('mitab_c_get_collection_region_ref',4);
@mitab_c_get_collection_polyline_ref:= GenericGetProcAddress('mitab_c_get_collection_polyline_ref',4);
@mitab_c_get_collection_multipoint_ref:= GenericGetProcAddress('mitab_c_get_collection_multipoint_ref',4);
@mitab_c_set_collection_region:= GenericGetProcAddress('mitab_c_set_collection_region',12);
@mitab_c_set_collection_polyline:= GenericGetProcAddress('mitab_c_set_collection_polyline',12);
@mitab_c_set_collection_multipoint:= GenericGetProcAddress('mitab_c_set_collection_multipoint',12);
@mitab_c_get_projection_info:= GenericGetProcAddress('mitab_c_get_projection_info',20);
@mitab_c_set_projection_info:= GenericGetProcAddress('mitab_c_set_projection_info',20);
@mitab_c_get_datum_info:= GenericGetProcAddress('mitab_c_get_datum_info',20);
@mitab_c_set_datum_info:= GenericGetProcAddress('mitab_c_set_datum_info',32);
@mitab_c_get_affine_params:= GenericGetProcAddress('mitab_c_get_affine_params',12);
@mitab_c_set_affine_params:= GenericGetProcAddress('mitab_c_set_affine_params',12);
@mitab_c_is_field_indexed:= GenericGetProcAddress('mitab_c_is_field_indexed',8);
@mitab_c_is_field_unique:= GenericGetProcAddress('mitab_c_is_field_unique',8);
@mitab_c_set_quick_spatial_index_mode:= GenericGetProcAddress('mitab_c_set_quick_spatial_index_mode',4);
end else MITAB_LoadErr:= -4;
end else MITAB_LoadErr:= -3;
end else MITAB_LoadErr:= -2;
end;
initialization
MITAB_LoadErr:= -1;
{$IFDEF MSWINDOWS}
LibPath:= 'mitab.dll';
{$ENDIF}
{$IFDEF LINUX}
LibPath:= 'libmitab.so.1.0.1';
{$ENDIF}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -