January 23, 2012 Re: MySQL | ||||
---|---|---|---|---|
| ||||
On Sun, Jan 22, 2012, at 11:02 PM, DNewbie wrote: > On Sun, Jan 22, 2012, at 01:13 PM, Mars wrote: > > On Sunday, 22 January 2012 at 10:21:29 UTC, DNewbie wrote: > > > I've took a look at MySQL headers, the functions use stdcall, but in libmysql.dll exports table they are not decorated. > > > > This means...? > > Shouldn't it at least compile, if they are listed in the def > > file, coming from the lib? > > > > You should add 'extern(Windows)', but it would not work anyway. > Can someone confirm the oplink does not handle this type of module > (undecorated stdcall functions)? > > > You can try // ----- libmysql.def --------------- LIBRARY "libmysql.dll" EXETYPE NT SUBSYSTEM WINDOWS EXPORTS _mysql_init@4=mysql_init // ---------------------------------------- // ----------- mysqltest.d ---------------- import libmysql; alias void MYSQL; int main() { MYSQL *m = libmysql.mysql_init(null); return 0; } // --------------------------------------------------- // --------------- libmysql.di ------------------- alias void MYSQL; export extern (Windows) MYSQL *mysql_init(MYSQL *); // ---------------------------------------------------- $ implib /system libmysql.lib libmysql.def $ dmd mysqltest.d libmysql.lib It works.. |
Copyright © 1999-2021 by the D Language Foundation