mysql:3507
From: Kengo Jinno <Kengo Jinno <kengo@xxxxxxxxxx>>
Date: Fri, 06 Apr 2001 20:08:46 +0900
Subject: [mysql 03507] Re: 日本語版での開発について
神野です。 Fri, 6 Apr 2001 19:31:12 +0900 ごろに <000801c0be84$b3f34900$2501a8c0@jshome> の "[mysql 03506] Re: 日本語版での開発について" のメールで "hirofujita8523" <hirofujita8523@xxxxxxxxxx> さんは書きました。 > しかし Borland 5.01 の implib には、オプション -a がないのです。 > 私の知識では Borland 5.01 のみで -a を使わずにコンパイルする方法がわかりませ > んでした。 残念ながら、5.01は持ってないので・・・ > 何らか Borland 5.01 だけでコンパイルする方法を教えていただけないでしょうか? まったく別の方法として、「明示的リンクを使う」というのがあります。 LoadLibrary( "libmysql.dll" ); して、 GetProcAddress( "mysql_num_fields"); して、 その関数ポインタを使って関数を呼び出す方法です。 といっても、libmysql.dllのすべての関数でそうしていたら とてもめんどくさいので、STDCALLでない関数だけでやれば どうでしょう? こんな感じ↓です。(テストしてません) typedef unsigned int (* LP_FUNC_MYSQLNUMFIELDS)( MYSQL_RES * ); int main( int ac, char* av[] ) { HINSTANCE hDll; LP_FUNC_MYSQLNUMFIELDS lpfnMysqlNumFields; hDll = LoadLibrary( "libmysql.dll" ); lpfnMysqlNumFields = (LP_FUNC_MYSQLNUMFIELDS)GetProcAddress( hDll, "mysql_num_fields" ); ... MYSQL_RES *res = mysql_store_result(p); printf("%d", (*lpfnMysqlNumFields)(res)); mysql_free_result(res); ... FreeLibrary( hDll ); return 0; } C++を使ってよいのなら、こうした手続きをラップするクラスを作って、 それ経由でアクセスすれば楽かもしれません。 #とかやっても、将来のwinclientsでは、全部STDCALLになるかも #しれません。(つーか、2種類あるのが美しくない) -- 神野健吾 <kengo@xxxxxxxxxx>
3496 2001-04-06 11:04 ["hirofujita8523" <hi] 日本語版での開発について 3497 2001-04-06 13:13 ┗[Kengo Jinno <kengo@x] 3506 2001-04-06 19:31 ┗["hirofujita8523" <hi] -> 3507 2001-04-06 20:08 ┗[Kengo Jinno <kengo@x] 3509 2001-04-07 06:15 ┗["hirofujita8523" <hi]