From: nobu.nakada@... Date: 2001-03-24T23:15:49+09:00 Subject: [ruby-dev:12666] Re: require 'win32api' なかだです。 At Sat, 24 Mar 2001 19:38:08 +0900, Kazuhiro NISHIYAMA wrote: > インストールされているファイル名の大文字小文字が間違っている > ことってなさそうだと思ってしまっていたので、LFNから拡張子を > とるだけでいいと思ってしまってました。 なるほど。で、FindFirstFile で取り出せば文字ケースはそれなり にというか保存された形になってるわけですか。ちなみに GetFullPathName というのもあるようですが、FindFirstFile の方が おすすめ? # 例によってまったく未確認ですが。 Index: dln.c =================================================================== RCS file: /cvs/ruby/src/ruby/dln.c,v retrieving revision 1.20 diff -u -2 -p -r1.20 dln.c --- dln.c 2001/03/13 05:45:08 1.20 +++ dln.c 2001/03/24 14:07:28 @@ -1235,11 +1235,19 @@ dln_load(file) if ((handle = LoadLibraryExA(winfile, NULL, LOAD_WITH_ALTERED_SEARCH_PATH)) == NULL) { - printf("LoadLibraryExA: %s\n", winfile); goto failed; } if ((init_fct = (void(*)())GetProcAddress(handle, buf)) == NULL) { - printf("GetProcAddress %s\n", buf); - goto failed; + WIN32_FIND_DATAA find; + HANDLE h = FindFirstFileA(winfile, &find); + if (!h) { + failed2: + rb_loaderror("%s - %s\n%s", dln_strerror(), buf, file); + } + FindClose(h); + init_funcname(buf, find.cFileName); + if ((init_fct = (void(*)())GetProcAddress(handle, buf)) == NULL) { + goto failed2; + } } /* Call the init code */ -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦