Click here to Skip to main content
15,890,557 members
Home / Discussions / C#
   

C#

 
GeneralRe: Converting a nullable type to a non nullable type Pin
Jeroen De Dauw1-Jan-10 1:19
Jeroen De Dauw1-Jan-10 1:19 
GeneralRe: Converting a nullable type to a non nullable type Pin
Eric Dahlvang1-Jan-10 8:48
Eric Dahlvang1-Jan-10 8:48 
QuestionDrawing "on screen"? Pin
o m n i31-Dec-09 6:08
o m n i31-Dec-09 6:08 
AnswerRe: Drawing "on screen"? Pin
Giorgi Dalakishvili31-Dec-09 9:41
mentorGiorgi Dalakishvili31-Dec-09 9:41 
Questioncallback function only getting called once then program crashing Pin
rjs1 431-Dec-09 4:36
rjs1 431-Dec-09 4:36 
AnswerRe: callback function only getting called once then program crashing Pin
DaveyM6931-Dec-09 5:18
professionalDaveyM6931-Dec-09 5:18 
GeneralRe: callback function only getting called once then program crashing Pin
rjs1 431-Dec-09 6:20
rjs1 431-Dec-09 6:20 
AnswerRe: callback function only getting called once then program crashing Pin
Daniel Grunwald31-Dec-09 6:42
Daniel Grunwald31-Dec-09 6:42 
I would guess your definition of the delegate does not match what the unmanaged function expects (number of parameters, return value, calling convention), so stack gets corrupted when your callback function is called.

Unmanaged signature:
typedef int (*STREAM_DIRECT_READ_CALLBACK)(ULONG channelNumber,void
*DataBuf,DWORD Length,int FrameType,void *context);

Your code:
public delegate void stream_direct_read_callback(int channelNum, Byte[] dataBuf, UInt32 length, int frameType, IntPtr context);



You used byte[] where the unmanaged code used void*. AFAIK the marshaller will automatically convert byte[] to void*, but NOT in the other direction as needed for callbacks. Moreover, the callback seems to be using the default calling convention (C-decl), not __stdcall as the .NET marshaller expects normally.

I would try changing the delegate signature to:
using System.Runtime.InteropServices;
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int stream_direct_read_callback(int channelNum, IntPtr dataBuf, UInt32 length, int frameType, IntPtr context);

GeneralRe: callback function only getting called once then program crashing Pin
rjs1 431-Dec-09 7:26
rjs1 431-Dec-09 7:26 
QuestionIs it possible to create a COM Component based on a .Net Component developed from the Compact Framework, running on Windows CE 4.2? Pin
pdohara31-Dec-09 4:25
pdohara31-Dec-09 4:25 
AnswerRe: Is it possible to create a COM Component based on a .Net Component developed from the Compact Framework, running on Windows CE 4.2? Pin
#realJSOP31-Dec-09 9:14
mve#realJSOP31-Dec-09 9:14 
QuestionAS Pin
manirul0431-Dec-09 4:23
manirul0431-Dec-09 4:23 
AnswerOM Pin
Keith Barrow31-Dec-09 4:27
professionalKeith Barrow31-Dec-09 4:27 
GeneralRe: OM Pin
OriginalGriff31-Dec-09 4:40
mveOriginalGriff31-Dec-09 4:40 
GeneralRe: OM Pin
PIEBALDconsult31-Dec-09 14:31
mvePIEBALDconsult31-Dec-09 14:31 
Questionsomething wrong in codes Pin
Erdinc2731-Dec-09 3:27
Erdinc2731-Dec-09 3:27 
AnswerRe: something wrong in codes Pin
OriginalGriff31-Dec-09 3:54
mveOriginalGriff31-Dec-09 3:54 
GeneralRe: something wrong in codes Pin
Erdinc2731-Dec-09 4:28
Erdinc2731-Dec-09 4:28 
GeneralRe: something wrong in codes Pin
OriginalGriff31-Dec-09 4:39
mveOriginalGriff31-Dec-09 4:39 
GeneralRe: something wrong in codes Pin
Erdinc271-Jan-10 23:44
Erdinc271-Jan-10 23:44 
GeneralRe: something wrong in codes Pin
OriginalGriff2-Jan-10 0:02
mveOriginalGriff2-Jan-10 0:02 
QuestionRetrieve an image from another pc in network Pin
wasifmuneer31-Dec-09 1:54
wasifmuneer31-Dec-09 1:54 
AnswerRe: Retrieve an image from another pc in network Pin
Paul Unsworth31-Dec-09 2:06
Paul Unsworth31-Dec-09 2:06 
AnswerRe: Retrieve an image from another pc in network Pin
minnie mouse31-Dec-09 14:48
minnie mouse31-Dec-09 14:48 
Questionproblem with custom serialization in .net 2.0 Pin
prasadbuddhika31-Dec-09 1:48
prasadbuddhika31-Dec-09 1:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.