G
Gabe Covert
I'm a new C# developer, and am developing an application which will utilize
a COM library from a third party. I have two following SDK calls from the
3rd-party SDK which I can't get to work under C#:
SDK declaration:
VARIANT_BOOL ReadMemory(unsigned char* Data, long DataSize);
tlbimp result:
public abstract new System.Boolean ReadMemory (System.Byte Data,
System.Int32 DataSize )
il result:
..method public hidebysig newslot virtual
instance bool ReadMemory([in] unsigned int8& Data,
[in] int32 DataSize) runtime managed
internalcall
{
.override XXX::ReadMemory
} // end of method XXX::ReadMemory
Errors:code.cs(132): The best overloaded method match for
'XXX.ReadMemory(ref byte, int)' has some invalid argumentscode.cs(132):
Argument '1': cannot convert from 'byte[]' to 'ref byte'
SDK Declaration:
VARIANT_BOOL CreateAllTemplates(IUnknown* pIDibImage, IUnknown*
pIFacePosition, VARIANT* FullTemplate, VARIANT* StoredNormalizer, VARIANT*
VectorTemplate, double *dGenderScore)
tlbimp result:
public abstract new System.Boolean CreateAllTemplates (System.Object
pIDibImage, System.Object pIFacePosition, System.Object FullTemplate,
System.Object StoredNormalizer, System.Object VectorTemplate, System.Double
fGenderScore)
il result:
..method public hidebysig newslot virtual
instance bool CreateAllTemplates([in] object marshal(
iunknown) pIDibImage,
[in] object marshal(
iunknown) pIFacePosition,
[out] object& marshal(
struct) FullTemplate,
[out] object& marshal(
struct) StoredNormalizer,
[out] object& marshal(
struct) VectorTemplate,
[out] float64& fGenderScore)
runtime managed internalcall
{
.override XXX::CreateAllTemplates
} // end of method XXX::CreateAllTemplatesErrors:Code.cs(140): The best
overloaded method match for 'XXX.CreateAllTemplates(object, object, out
object, out object, out object, out double)' has some invalid
argumentsCode.cs(140): Argument '3': cannot convert from
'System.Collections.ArrayList' to 'out object'Code.cs(140): Argument '4':
cannot convert from 'System.Collections.ArrayList' to 'out
object'Code.cs(140): Argument '5': cannot convert from
'System.Collections.ArrayList' to 'out object'Code.cs(140): A property or
indexer may not be passed as an out or ref parameter Any hints as to how I
can get these calls to work?Thanks!Gabe
a COM library from a third party. I have two following SDK calls from the
3rd-party SDK which I can't get to work under C#:
SDK declaration:
VARIANT_BOOL ReadMemory(unsigned char* Data, long DataSize);
tlbimp result:
public abstract new System.Boolean ReadMemory (System.Byte Data,
System.Int32 DataSize )
il result:
..method public hidebysig newslot virtual
instance bool ReadMemory([in] unsigned int8& Data,
[in] int32 DataSize) runtime managed
internalcall
{
.override XXX::ReadMemory
} // end of method XXX::ReadMemory
Errors:code.cs(132): The best overloaded method match for
'XXX.ReadMemory(ref byte, int)' has some invalid argumentscode.cs(132):
Argument '1': cannot convert from 'byte[]' to 'ref byte'
SDK Declaration:
VARIANT_BOOL CreateAllTemplates(IUnknown* pIDibImage, IUnknown*
pIFacePosition, VARIANT* FullTemplate, VARIANT* StoredNormalizer, VARIANT*
VectorTemplate, double *dGenderScore)
tlbimp result:
public abstract new System.Boolean CreateAllTemplates (System.Object
pIDibImage, System.Object pIFacePosition, System.Object FullTemplate,
System.Object StoredNormalizer, System.Object VectorTemplate, System.Double
fGenderScore)
il result:
..method public hidebysig newslot virtual
instance bool CreateAllTemplates([in] object marshal(
iunknown) pIDibImage,
[in] object marshal(
iunknown) pIFacePosition,
[out] object& marshal(
struct) FullTemplate,
[out] object& marshal(
struct) StoredNormalizer,
[out] object& marshal(
struct) VectorTemplate,
[out] float64& fGenderScore)
runtime managed internalcall
{
.override XXX::CreateAllTemplates
} // end of method XXX::CreateAllTemplatesErrors:Code.cs(140): The best
overloaded method match for 'XXX.CreateAllTemplates(object, object, out
object, out object, out object, out double)' has some invalid
argumentsCode.cs(140): Argument '3': cannot convert from
'System.Collections.ArrayList' to 'out object'Code.cs(140): Argument '4':
cannot convert from 'System.Collections.ArrayList' to 'out
object'Code.cs(140): Argument '5': cannot convert from
'System.Collections.ArrayList' to 'out object'Code.cs(140): A property or
indexer may not be passed as an out or ref parameter Any hints as to how I
can get these calls to work?Thanks!Gabe