Re: To cast or not to cast?



You should not guess the length, you should know it. It might be fixed or
native code could return it somehow.
Most likely you're correct and FirstBIRSample.Length contains this size.
You should check out the documentation for the function you're calling to
make sure it's correct.

If value of a pointer is 0, it's null pointer. It means this pointer is not
valid and points to nothing.
Since no data is available, you could store it as DBNull.

Best regards,

Ilya

This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
> From: "Jeremy" <jezonline@xxxxxxxxxxx>
> References: <umEpDi8OFHA.3880@xxxxxxxxxxxxxxxxxxxx>
<64$0lp9OFHA.1564@xxxxxxxxxxxxxxxxxxxxx>
<#t8wc#BPFHA.1268@xxxxxxxxxxxxxxxxxxxx>
<tz30okGPFHA.920@xxxxxxxxxxxxxxxxxxxxx>
> Subject: Re: To cast or not to cast?
> Date: Sat, 9 Apr 2005 22:32:29 +0100
> Lines: 159
> X-Priority: 3
> X-MSMail-Priority: Normal
> X-Newsreader: Microsoft Outlook Express 6.00.2800.1478
> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1478
> Message-ID: <eTuV9uUPFHA.2568@xxxxxxxxxxxxxxxxxxxx>
> Newsgroups: microsoft.public.dotnet.framework.compactframework
> NNTP-Posting-Host: host-84-9-101-26.bulldogdsl.com 84.9.101.26
> Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP14.phx.gbl
> Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.compactframework:26653
> X-Tomcat-NG: microsoft.public.dotnet.framework.compactframework
>
> Thanks a lot for that! Before going to the UInt16 problem, I better try to
> solve that IntPtr problem.
>
> Managed to use Marshal.Copy. Not sure how I should 'guess' the length of
the
> Byte array to copy to. When I type FirstBIRSample.BiometricData (which is
> the IntPtr) in the command window, it returns to me: 2372256 - is this the
> size?
> I 'assumed' the size would be 1040 (which is stored in
> FirstBIRSample.Length).
>
> Second Part: Seems like the FirstBIRSample.Signature (also a pointer) is
0,
> how should I store this?
>
> Thanks so much!
>
> ""Ilya Tumanov [MS]"" <ilyatum@xxxxxxxxxxxxxxxxxxxx> wrote in message
> news:tz30okGPFHA.920@xxxxxxxxxxxxxxxxxxxxxxxx
> > While storing UInt16 as Int is OK, it will take more space. The problem
> > you're having is caused by range check. You might consider using
> > unchecked() to disable it.
> >
> > System.Runtime.InteropServices.Marshal class allows you to copy data
from
> > the pointer to the array. Look into Copy() methods of that class.
> >
> > Best regards,
> >
> > Ilya
> >
> > This posting is provided "AS IS" with no warranties, and confers no
> rights.
> > --------------------
> > > From: "Jeremy" <jezonline@xxxxxxxxxxx>
> > > References: <umEpDi8OFHA.3880@xxxxxxxxxxxxxxxxxxxx>
> > <64$0lp9OFHA.1564@xxxxxxxxxxxxxxxxxxxxx>
> > > Subject: Re: To cast or not to cast?
> > > Date: Fri, 8 Apr 2005 10:44:39 +0100
> > > Lines: 91
> > > X-Priority: 3
> > > X-MSMail-Priority: Normal
> > > X-Newsreader: Microsoft Outlook Express 6.00.2800.1478
> > > X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1478
> > > Message-ID: <#t8wc#BPFHA.1268@xxxxxxxxxxxxxxxxxxxx>
> > > Newsgroups: microsoft.public.dotnet.framework.compactframework
> > > NNTP-Posting-Host: host-84-9-101-26.bulldogdsl.com 84.9.101.26
> > > Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP14.phx.gbl
> > > Xref: TK2MSFTNGXA01.phx.gbl
> > microsoft.public.dotnet.framework.compactframework:26572
> > > X-Tomcat-NG: microsoft.public.dotnet.framework.compactframework
> > >
> > > Thanks so much for the replies Alex and Ilya!
> > >
> > > I changed the types in sql. It wasn't happy with Uint16 mapped to
> smallint
> > > (sql says value is either too small or too large), so I just went for
an
> > > int.
> > >
> > > Not sure how to retrieve the data data an IntPtr is pointing to
though.
> > How
> > > can I get that data as a byte array?
> > >
> > > thanks so much again!
> > >
> > > ""Ilya Tumanov [MS]"" <ilyatum@xxxxxxxxxxxxxxxxxxxx> wrote in message
> > > news:64$0lp9OFHA.1564@xxxxxxxxxxxxxxxxxxxxxxxx
> > > >
> > >
> >
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/
> > > > frlrfsystemdatasqldbtypeclasstopic.asp
> > > >
> > > > UInt32: Int will do. Signed and Unsigned integers are actually the
> same;
> > > > just cast them to the right type.
> > > > UInt16: SmallInt, see warning above
> > > > Byte: TinyInt
> > > > BioAPI_*: look up underlying type definition and use it. Enums are
> Int32
> > > by
> > > > default.
> > > > IntPtr: it's Int32, so store it as Int.
> > > >
> > > > Note, however, it's probably pointless to store pointers in the data
> > base.
> > > > Pointer itself is not important, most likely you need to store
> whatever
> > > > it's pointing to.
> > > >
> > > > Best regards,
> > > >
> > > > Ilya
> > > >
> > > > This posting is provided "AS IS" with no warranties, and confers no
> > > rights.
> > > >
> > > > --------------------
> > > > > From: "Jeremy" <jezonline@xxxxxxxxxxx>
> > > > > Subject: To cast or not to cast?
> > > > > Date: Fri, 8 Apr 2005 00:21:17 +0100
> > > > > Lines: 25
> > > > > X-Priority: 3
> > > > > X-MSMail-Priority: Normal
> > > > > X-Newsreader: Microsoft Outlook Express 6.00.2800.1478
> > > > > X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1478
> > > > > Message-ID: <umEpDi8OFHA.3880@xxxxxxxxxxxxxxxxxxxx>
> > > > > Newsgroups: microsoft.public.dotnet.framework.compactframework
> > > > > NNTP-Posting-Host: host-84-9-101-26.bulldogdsl.com 84.9.101.26
> > > > > Path:
> TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
> > > > > Xref: TK2MSFTNGXA01.phx.gbl
> > > > microsoft.public.dotnet.framework.compactframework:26546
> > > > > X-Tomcat-NG: microsoft.public.dotnet.framework.compactframework
> > > > >
> > > > > Hi,
> > > > >
> > > > > I'm trying to convert the following types into types that I can
> insert
> > > in
> > > > an
> > > > > SQL database (via a webservice). None of these however are
accepted
> by
> > > Sql
> > > > > (i.e., there is no OleDbType for them). I could only use integer
> type
> > > for
> > > > > UInt32, that's about it. I'm totally unsure about the other types.
> > What
> > > > I've
> > > > > tried doing so far is casting them prior to sending them to the
> > > > webservice.
> > > > > When inserting them I get errors though. Would anyone know/could
> point
> > > me
> > > > to
> > > > > types that I could use? Any help would be really appreciated, i'm
> > lost!
> > > > >
> > > > > Thanks so much!
> > > > >
> > > > >
> > > > > System.UInt32 Length;
> > > > > System.Byte HeaderVersion;
> > > > > BioAPI_BIR_DATA_TYPE Type;
> > > > > System.UInt16 FormatOwner;
> > > > > System.UInt16 FormatID;
> > > > > System.Byte Quality; /*INT8 BioAPI_QUALITY*/
> > > > > BioAPI_BIR_PURPOSE Purpose;
> > > > > BioAPI_BIR_AUTH_FACTORS FactorsMask;
> > > > > System.IntPtr BiometricData;
> > > > > System.IntPtr Signature;
> > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> >
>
>
>

.



Relevant Pages

  • Re: Array of pointer in C#
    ... what you have is not an array, ... pointer that's marshalled as IntPtr. ... TBufferHeader* as a IntPtr as well. ... "Kathy Tran" wrote: ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Indexing of IntPtr
    ... so an interop call returns a pointer to an array which you receive as ... > IntPtr GetArray(); ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Indexing of IntPtr
    ... OK, so an interop call returns a pointer to an array which you receive as an IntPtr, e.g.: ... IntPtr GetArray(); ... Now in the class you have you want to provide access to this array via an indexer. ...
    (microsoft.public.dotnet.languages.csharp)
  • marsal string array inside a struct
    ... CADWORD *pcaCookiesOut //Receives a pointer to array of DWORDs ... public uint GetPredefinedStrings(int dispid, out CALPOLESTR strOut, out ... how to pass array of IntPtr to IntrPtr ...
    (microsoft.public.dotnet.framework.interop)
  • Re: char **argv & char *argv[]
    ... "pointer to pointer to char". ... >> pointer)) pointing to the first element of an array. ... so we have to start adding more context. ... type "pointer to char", rather than "array MISSING_SIZE of char". ...
    (comp.lang.c)

Loading