[Shapelib] I have the dll compiled but know I have to make it works in the emulator.

Daniel de la Cuesta cues7a at yahoo.es
Sun Aug 27 13:19:13 EDT 2006

Don´t worry about my previous question because It´s solved. I have been trying and I got the solution.
  I had to change somethings in the C code:
  1.- I had to define DLL export:
  #define DLL_EXPORT __declspec(dllexport)
  2.- Declare each method that is accesed from outside lik
  DLL_EXPORT void Method ()
  Now when i do: dumpbin shapelib.dll /EXTERNS I got the extern methods.
  I am trying a test app that uses shapelib.dll and I have a problem. I  want to create a new DBF. So I use the DBFCreate function. Then i add  some fields. I do something like that:
  IntPtr hDbf = ShapeLib.DBFCreate(FILENAME);
  int iRet = ShapeLib.DBFAddField(hDbf, "id", ShapeLib.DBFFieldType.FTInteger, 5, 0);
               iRet = ShapeLib.DBFAddField(hDbf, "texto",  ShapeLib.DBFFieldType.FTString, 10, 0);
               iRet = ShapeLib.DBFAddField(hDbf, "double",  ShapeLib.DBFFieldType.FTDouble, 11, 0);
               iRet = ShapeLib.DBFAddField(hDbf, "boolean",  ShapeLib.DBFFieldType.FTLogical, 5, 0);
  Everything is Ok, I get a dbf archive with the fields I want. Well,  almost everything because I only get the first letter of each field and  the first letter of the file.
  For example: I get a "t.dbf" file (instead of "test.dbf").
  I want a field called "stringField" but I only get a field called "s"
  I want a field called "doubleField" but I only get a field called "d"
  What´s happening? Anyone know something about that?
  Thank you.
Daniel de la Cuesta <cues7a at yahoo.es> escribió:  Hi Mateusz,
  I am Daniel, I have been studying how to import a Dll with PInvoke
  from Compact Framework.
  > Please, confirm this checklist (though, there are more issues possible):
  > 1. Your DLL is indeed compiled for Pocket PC and correct CPU
  > architecture, but not for desktop
  That´s ok. I have my dll compiled for Pocket Pc. Your e-mails have been very helpfull to do that.
  > 2. You've deployed (tricky, may not work with DLL) or manually uploaded
  > your shapefile.dll file to the mobile device, into directory where is
  > your .NET CF application .exe file.
  > If you want to deploy DLL automatically, follow these steps:
  > 1. Right click on your .NET CF app project in the solution explorer
  > 2. Choose Add/Existing Item
  > 3. Navigate to your shapefile.dll
  > 4. Select this file in the solution explorer.
  > 5. Change "Build   Action" to "Content"
  > Note, that after your DLL is uploaded on the device or emulator,
  > File Explorer won't show it in directory listings because DLLs are
  > hidden by default.
  > So, enable "Show all files" to see it.
  When I deploy my application in the emulator I get the following
  exception during the execution:
  "Can't find an Entry Point 'DBFCreate' in a PInvoke DLL
  I have done "dumpbin shapelib.dll /EXPORTS" in the VS2005 command line and I get the following result:
Section contains the following exports for shapelib.dll
 00000000 characteristics
    44EE10C5 time date stamp Mon Apr 24 22:02:37 2006
        0.00 version
           1 ordinal base
           0 number of functions
    0 number of names 
           1 number of names

That thing means that shapelib.dll has no external 
functions I can use.

I think I have to declare the methods I am going
to use like extern in the C code.

What do you think?
I am no good with C code, can you tell me how to do it?
Do I have to declare them like
 extern in the prototypes?

Can you help me? 

   Daniel                             mailto:cues7a at yahoo.es


LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
Shapelib mailing list
Shapelib at lists.maptools.org


LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/shapelib/attachments/20060827/b4b25dbe/attachment.html

More information about the Shapelib mailing list