Mail Archives: cygwin/2007/05/02/17:16:13
I am trying hard to get this stuff working!!!!!! Could you please help me.
I created a dll file (test.dll), which contains the function that
creates a socket and return the success/failure status. This file uses
the socket.h provided by cygwin. I compiled this dll using gcc on
cygwin.
I also created a library file(testdll.lib) from this dll(test.dll).
When I tried to call the function defined in the test.dll in a program
(written in Microsoft Visual C++), this enters (that is created using
cygwin library), by a Microsoft Visual C++ program rean infinite loop.
The same program works fine if I call getuid or random function
instead of socket. And the stack is as below. I would really
appreciate if I can get some suggestions on how to get this working.
Call Stack (from my MSVC++ program):
ntdll.dll!7c90eb94()
ntdll.dll!7c90ea53()
kernel32.dll!7c832998()
cygwin1.dll!61058235()
cygwin1.dll!61092daf()
new3.exe!main() Line 6 + 0x8 C++
new3.exe!mainCRTStartup() Line 259 + 0x19 C
kernel32.dll!7c816fd7()
ntdll.dll!7c915b4f()
test.cpp (uses the socket.h from cygwin and compiled using gcc)
#include<stdio.h>
#include<socket.h>
#define SOCKETTEST_BUILD_DLL
#include "test.h"
DLL_IMPORT_EXPORT int createSocket()
{
int s;
s= socket(PF_INET, SOCK_DGRAM,17 );
return s;
}
test.h
#ifdef SOCKETTEST_BUILD_DLL
#define DLL_IMPORT_EXPORT __declspec(dllexport)
#else
#define DLL_IMPORT_EXPORT __declspec(dllimport)
#endif
extern "C" {
DLL_IMPORT_EXPORT int createSocket();
}
My MSVC++ program calling this dll:
#include<stdio.h>
#include "test.h"
#include<Windows.h>
void main(){
int s=createSocket();
printf("the value returned is %d", s);
Sleep(5000);
}
The command I used to create the dll file in cygwin:
gcc -shared -I ../../cygwin/usr/include/cygwin -o testdll.dll test.cpp
-Wl,--output-def,testdll.def,--out-implib,libtestdll.a
Command used to create the library file:
"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\lib"
/machine:i386 /DEF:testdll.def
--
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 -