Follow-on to my post:
<rant>It *is* simple to build a connector, and I can't fathom why Oracle opted for the turgid approach it did. All you need to do is write your own header file that declares the exports from libmysql.dll and link with libmysql.lib, both from a legacy version of the C connector (I chose 6.1.11).
The thing that makes it APPEAR hard to use the published connector source is the needless profusion of typedef's and #define's. It would have been simple for Oracle to publish a single header file with prototypes like this:
typedef void* MYSQL;
MYSQL* __stdcall mysql_init(MYSQL*);
etc.
Combined with the documentation at
https://dev.mysql.com/doc/refman/8.0/en/mysql-init.html, this is all the hapless Windows developer needs.
Speaking again with the voice of a curmugeon with 50 years of software development experience, I opine that one should not reinvent the wheel by redefining native data types. That might have been necessary 30 years ago when the C language was in its infancy and there were multiple, incompatible, x86 compilers. But it's emphatically not necessary now.
</rant>