Mail Archives: cygwin/2005/07/11/19:14:52
> > I have module.dll that was created by using command line "gcc -shared
> > -o module.dll module.c" in cygwin.
> > When I run "msvc-cygload -v -cygwin module.dll" in cygwin, error
> > messages listed below occurred.
> Why are you using cygload to load something that isn't cygwin1.dll?
Hi, Max:
Originally, I got two files, main.c and module.c
// main.c
#include <stdio.h>
#include <windows.h>
int main(){
void *handle;
int (*fp)();
char *modname = "./module.dll";
handle = LoadLibrary(modname);
if (handle == NULL) {
fprintf(stderr, "Can't load %s in LoadLibrary()\n", modname);
exit(1);
}
fp = (int (*)())GetProcAddress((HMODULE)handle, "foo");
if (fp== NULL) {
fprintf(stderr, "ERROR: GetProcAddress()\n");
exit(1);
}
fp();
FreeLibrary((HMODULE)handle);
}
// module.c
#include <stdio.h>
#include <windows.h>
int foo(int arg){
printf("foo() called\n");
return (arg * 2);
}
I used "cl -c main.c" and "cl /o main.exe main.obj" to create main.exe.
I used "gcc -shared -o module.dll module.c" to create module.dll.
module.dll will be invoked in main.exe. However, when I run main.exe, the
program just hung there.
So, my question is in an executable program that was created by MSVC, how
to dynamically load a library (module.dll) that was created by cygwin's
gcc?
Some users suggested that I load cygwin1.dll before module.dll because
module.dll might be related to cygwin1.dll.
module.dll will only be created by cygwin's gcc, but I'm not sure if I did
it in the correct way using "gcc -shared -o module.dll module.c".
I have been working on this for a while, but still can't figure out how to
make it work.
Could you help me with this?
Thanks
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -