473,413 Members | 1,713 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,413 software developers and data experts.

exporting a struct with an array from a C++ dll to be accessed in C#

AM
Hi,
I have a C++ Dll that has a function that is being exported as
shown below

extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);

A structure is defined in the header(.h file) as shown below
struct validationResult
{
int rWaveValid; //validity of the WAVE
int signalStatusArray[4]; //validity of each of the channel data -
'causing the problems'
};

I need to call the above method from C# in where i have the following
structure defined
public struct validationResult
{
public int micDataValid; //validity of the microphone data
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
channel data
};

And my function call is as shown
validationResult res = new validationResult();
res.signalStatusArray = new int[4];
res = _validateData(dataToMat, 2);

When the last line is reached i get an exception that says"Method's
type signature is not PInvoke compatible"
What am I doing wrong.

I know the issue is at the array inside the struct, as when I remove
the array from the C++ struct and the C# struct I get the right
response.

Thanks in Advance.
abhi M

Apr 18 '07 #1
9 6483

"AM" <ab********@gmail.comwrote in message
news:11*********************@o5g2000hsb.googlegrou ps.com...
Hi,
I have a C++ Dll that has a function that is being exported as
shown below

extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);

A structure is defined in the header(.h file) as shown below
struct validationResult
{
int rWaveValid; //validity of the WAVE
int signalStatusArray[4]; //validity of each of the channel data -
'causing the problems'
};

I need to call the above method from C# in where i have the following
structure defined
public struct validationResult
{
public int micDataValid; //validity of the microphone data
magically appeared?
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
channel data
No, that doesn't match. A dynamically resizeable array is not the same as
an inline array of size 4. Look for the 'fixed' keyword in the C# help.
};

And my function call is as shown
validationResult res = new validationResult();
res.signalStatusArray = new int[4];
res = _validateData(dataToMat, 2);

When the last line is reached i get an exception that says"Method's
type signature is not PInvoke compatible"
What am I doing wrong.

I know the issue is at the array inside the struct, as when I remove
the array from the C++ struct and the C# struct I get the right
response.

Thanks in Advance.
abhi M

Apr 18 '07 #2
AM
I guess i did not copy my code correctly.
Here is what my C# struct looks like

public struct validationResult
{
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
//channel data
};

Are you suggesting that the the error is caused by my array definition
in C# is dynamic (because of the []), while my C++ array is of size 4?

On Apr 18, 2:01 pm, "Ben Voigt" <r...@nospam.nospamwrote:
"AM" <abhi.me...@gmail.comwrote in message

news:11*********************@o5g2000hsb.googlegrou ps.com...
Hi,
I have a C++ Dll that has a function that is being exported as
shown below
extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);
A structure is defined in the header(.h file) as shown below
struct validationResult
{
int rWaveValid; //validity of the WAVE
int signalStatusArray[4]; //validity of each of the channel data -
'causing the problems'
};
I need to call the above method from C# in where i have the following
structure defined
public struct validationResult
{
public int micDataValid; //validity of the microphone data

magically appeared?
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
channel data

No, that doesn't match. A dynamically resizeable array is not the same as
an inline array of size 4. Look for the 'fixed' keyword in the C# help.
};
And my function call is as shown
validationResult res = new validationResult();
res.signalStatusArray = new int[4];
res = _validateData(dataToMat, 2);
When the last line is reached i get an exception that says"Method's
type signature is not PInvoke compatible"
What am I doing wrong.
I know the issue is at the array inside the struct, as when I remove
the array from the C++ struct and the C# struct I get the right
response.
Thanks in Advance.
abhi M

Apr 18 '07 #3
"AM" <ab********@gmail.comwrote in message
news:11**********************@n59g2000hsh.googlegr oups.com...
>I guess i did not copy my code correctly.
Here is what my C# struct looks like

public struct validationResult
{
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
//channel data
};

Are you suggesting that the the error is caused by my array definition
in C# is dynamic (because of the []), while my C++ array is of size 4?
Hard to tell, as you did not post the function declaration (C#), also I'm not clear on why
you allocate a managed array in C# while your C function returns a pointer (to an array in
unmanaged memory).

res.signalStatusArray = new int[4]; // WHY????
res = _validateData(dataToMat, 2); //res is returned from C, it's a pointer right???

I would suggest you to post a complete sample that illustrates the issue.
Willy.
Apr 18 '07 #4
AM
Here is my C++ code

#include "CppMatlabWrapper.h"
#include <exception>
#include <string>
using namespace std;

//Method to validate the data
extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time)
{
validationResult res;
res.signalStatusArray[0]=1;
res.signalStatusArray[1]=2;
res.signalStatusArray[2]=3;
res.signalStatusArray[3]=4;
res.micDataValid = (int)(dataToMat[0]*100);
res.rWaveValid = (int)(dataToMat[1]*100);
return res;
}

------------
Here is the header file CppMatlabWrapper.h
//Structure to store the result of the validation operation
struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray[4]; //validity of each of the channel data
};
extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);

This C++ code compiled gives me the library "CppMatlabWrapper.dll"
--------------------------------------------------------------------

Here is the C# code to access this library
using System;
using System.Runtime.InteropServices;

namespace MatlabWrapper
{
class Program
{

//Structure to receive the result of the validation operation
public struct validationResult
{
public int micDataValid; //validity of the microphone data
public int rWaveValid; //validity of the r Wave
public fixed int signalStatusArray[4];
};

[DllImport("CppMatlabWrapper.dll")]
static extern validationResult _validateData(double[] data,
int time);

static void Main(string[] args)
{
//code for creating a double array called dataToMat of
some size
//
validationResult res;
res = _validateData(dataToMat, 2);
}
}
}
THANKS
________

On Apr 18, 5:08 pm, "Willy Denoyette [MVP]"
<willy.denoye...@telenet.bewrote:
"AM" <abhi.me...@gmail.comwrote in message

news:11**********************@n59g2000hsh.googlegr oups.com...
I guess i did not copy my code correctly.
Here is what my C# struct looks like
public struct validationResult
{
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
//channel data
};
Are you suggesting that the the error is caused by my array definition
in C# is dynamic (because of the []), while my C++ array is of size 4?

Hard to tell, as you did not post the function declaration (C#), also I'm not clear on why
you allocate a managed array in C# while your C function returns a pointer (to an array in
unmanaged memory).

res.signalStatusArray = new int[4]; // WHY????
res = _validateData(dataToMat, 2); //res is returned from C, it's a pointer right???

I would suggest you to post a complete sample that illustrates the issue.

Willy.

Apr 19 '07 #5

"AM" <ab********@gmail.comwrote in message
news:11**********************@n59g2000hsh.googlegr oups.com...
>I guess i did not copy my code correctly.
Here is what my C# struct looks like

public struct validationResult
{
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
//channel data
};

Are you suggesting that the the error is caused by my array definition
in C# is dynamic (because of the []), while my C++ array is of size 4?
I am suggesting looking at the documentation for C# fixed-size buffers which
is here: http://msdn2.microsoft.com/en-us/lib...ya(VS.80).aspx

A dynamic (.NET) array carries additional stuff with it like length.
Additionally, since .NET arrays are ref class, only a pointer is stored in
the structure. This is totally different from the layout used by the C++
structure definition you gave.
>
On Apr 18, 2:01 pm, "Ben Voigt" <r...@nospam.nospamwrote:
>"AM" <abhi.me...@gmail.comwrote in message

news:11*********************@o5g2000hsb.googlegro ups.com...
Hi,
I have a C++ Dll that has a function that is being exported as
shown below
extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);
A structure is defined in the header(.h file) as shown below
struct validationResult
{
int rWaveValid; //validity of the WAVE
int signalStatusArray[4]; //validity of each of the channel data -
'causing the problems'
};
I need to call the above method from C# in where i have the following
structure defined
public struct validationResult
{
public int micDataValid; //validity of the microphone data

magically appeared?
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
channel data

No, that doesn't match. A dynamically resizeable array is not the same
as
an inline array of size 4. Look for the 'fixed' keyword in the C# help.
};
And my function call is as shown
validationResult res = new validationResult();
res.signalStatusArray = new int[4];
res = _validateData(dataToMat, 2);
When the last line is reached i get an exception that says"Method's
type signature is not PInvoke compatible"
What am I doing wrong.
I know the issue is at the array inside the struct, as when I remove
the array from the C++ struct and the C# struct I get the right
response.
Thanks in Advance.
abhi M


Apr 19 '07 #6
AM
In that case what should my C# definition look like for the
corresponding C++ definition mentioned below?

C++ struct
struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray[4]; //validity of each of the channel
data
};

Thanks

On Apr 19, 10:31 am, "Ben Voigt" <r...@nospam.nospamwrote:
"AM" <abhi.me...@gmail.comwrote in message

news:11**********************@n59g2000hsh.googlegr oups.com...
I guess i did not copy my code correctly.
Here is what my C# struct looks like
public struct validationResult
{
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
//channel data
};
Are you suggesting that the the error is caused by my array definition
in C# is dynamic (because of the []), while my C++ array is of size 4?

I am suggesting looking at the documentation for C# fixed-size buffers which
is here:http://msdn2.microsoft.com/en-us/lib...ya(VS.80).aspx

A dynamic (.NET) array carries additional stuff with it like length.
Additionally, since .NET arrays are ref class, only a pointer is stored in
the structure. This is totally different from the layout used by the C++
structure definition you gave.
On Apr 18, 2:01 pm, "Ben Voigt" <r...@nospam.nospamwrote:
"AM" <abhi.me...@gmail.comwrote in message
>news:11*********************@o5g2000hsb.googlegro ups.com...
Hi,
I have a C++ Dll that has a function that is being exported as
shown below
extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);
A structure is defined in the header(.h file) as shown below
struct validationResult
{
int rWaveValid; //validity of the WAVE
int signalStatusArray[4]; //validity of each of the channel data -
'causing the problems'
};
I need to call the above method from C# in where i have the following
structure defined
public struct validationResult
{
public int micDataValid; //validity of the microphone data
magically appeared?
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
channel data
No, that doesn't match. A dynamically resizeable array is not the same
as
an inline array of size 4. Look for the 'fixed' keyword in the C# help.
};
And my function call is as shown
validationResult res = new validationResult();
res.signalStatusArray = new int[4];
res = _validateData(dataToMat, 2);
When the last line is reached i get an exception that says"Method's
type signature is not PInvoke compatible"
What am I doing wrong.
I know the issue is at the array inside the struct, as when I remove
the array from the C++ struct and the C# struct I get the right
response.
Thanks in Advance.
abhi M

Apr 19 '07 #7

"AM" <ab********@gmail.comwrote in message
news:11*********************@b75g2000hsg.googlegro ups.com...
In that case what should my C# definition look like for the
corresponding C++ definition mentioned below?

C++ struct
struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray[4]; //validity of each of the channel
data
};
C# (not compile tested)

unsafe struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
fixed int signalStatusArray[4]; //validity of each of the channel
data
};

or

struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray_0; //validity of each of the channel data
int signalStatusArray_1;
int signalStatusArray_2;
int signalStatusArray_3;
};
>
Thanks

On Apr 19, 10:31 am, "Ben Voigt" <r...@nospam.nospamwrote:
>"AM" <abhi.me...@gmail.comwrote in message

news:11**********************@n59g2000hsh.googleg roups.com...
>I guess i did not copy my code correctly.
Here is what my C# struct looks like
public struct validationResult
{
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
//channel data
};
Are you suggesting that the the error is caused by my array definition
in C# is dynamic (because of the []), while my C++ array is of size 4?

I am suggesting looking at the documentation for C# fixed-size buffers
which
is here:http://msdn2.microsoft.com/en-us/lib...ya(VS.80).aspx

A dynamic (.NET) array carries additional stuff with it like length.
Additionally, since .NET arrays are ref class, only a pointer is stored
in
the structure. This is totally different from the layout used by the C++
structure definition you gave.
On Apr 18, 2:01 pm, "Ben Voigt" <r...@nospam.nospamwrote:
"AM" <abhi.me...@gmail.comwrote in message
>>news:11*********************@o5g2000hsb.googlegr oups.com...
Hi,
I have a C++ Dll that has a function that is being exported as
shown below
extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);
A structure is defined in the header(.h file) as shown below
struct validationResult
{
int rWaveValid; //validity of the WAVE
int signalStatusArray[4]; //validity of each of the channel data -
'causing the problems'
};
I need to call the above method from C# in where i have the
following
structure defined
public struct validationResult
{
public int micDataValid; //validity of the microphone data
>magically appeared?
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
channel data
>No, that doesn't match. A dynamically resizeable array is not the
same
as
an inline array of size 4. Look for the 'fixed' keyword in the C#
help.
};
And my function call is as shown
validationResult res = new validationResult();
res.signalStatusArray = new int[4];
res = _validateData(dataToMat, 2);
When the last line is reached i get an exception that says"Method's
type signature is not PInvoke compatible"
What am I doing wrong.
I know the issue is at the array inside the struct, as when I remove
the array from the C++ struct and the C# struct I get the right
response.
Thanks in Advance.
abhi M


Apr 19 '07 #8
AM
When I use the struct u suggested
unsafe struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
fixed int signalStatusArray[4]; //validity of each of the
channel
data

};
I get the following error.
Unable to find an entry point named '_validateData' in DLL
'CppMatlabWrapper.dll'.

This error goes away When i remove the array fro both the C++ and the
C# structs. So I think It has something to do with the way my array is
declared in the struct.

Thanks.


On Apr 19, 11:52 am, "Ben Voigt" <r...@nospam.nospamwrote:
"AM" <abhi.me...@gmail.comwrote in message

news:11*********************@b75g2000hsg.googlegro ups.com...
In that case what should my C# definition look like for the
corresponding C++ definition mentioned below?
C++ struct
struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray[4]; //validity of each of the channel
data
};

C# (not compile tested)

unsafe struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
fixed int signalStatusArray[4]; //validity of each of the channel
data

};

or

struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray_0; //validity of each of the channel data
int signalStatusArray_1;
int signalStatusArray_2;
int signalStatusArray_3;

};
Thanks
On Apr 19, 10:31 am, "Ben Voigt" <r...@nospam.nospamwrote:
"AM" <abhi.me...@gmail.comwrote in message
>news:11**********************@n59g2000hsh.googleg roups.com...
I guess i did not copy my code correctly.
Here is what my C# struct looks like
public struct validationResult
{
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
//channel data
};
Are you suggesting that the the error is caused by my array definition
in C# is dynamic (because of the []), while my C++ array is of size 4?
I am suggesting looking at the documentation for C# fixed-size buffers
which
is here:http://msdn2.microsoft.com/en-us/lib...ya(VS.80).aspx
A dynamic (.NET) array carries additional stuff with it like length.
Additionally, since .NET arrays are ref class, only a pointer is stored
in
the structure. This is totally different from the layout used by the C++
structure definition you gave.
On Apr 18, 2:01 pm, "Ben Voigt" <r...@nospam.nospamwrote:
"AM" <abhi.me...@gmail.comwrote in message
>news:11*********************@o5g2000hsb.googlegro ups.com...
Hi,
I have a C++ Dll that has a function that is being exported as
shown below
extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);
A structure is defined in the header(.h file) as shown below
struct validationResult
{
int rWaveValid; //validity of the WAVE
int signalStatusArray[4]; //validity of each of the channel data -
'causing the problems'
};
I need to call the above method from C# in where i have the
following
structure defined
public struct validationResult
{
public int micDataValid; //validity of the microphone data
magically appeared?
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
channel data
No, that doesn't match. A dynamically resizeable array is not the
same
as
an inline array of size 4. Look for the 'fixed' keyword in the C#
help.
};
And my function call is as shown
validationResult res = new validationResult();
res.signalStatusArray = new int[4];
res = _validateData(dataToMat, 2);
When the last line is reached i get an exception that says"Method's
type signature is not PInvoke compatible"
What am I doing wrong.
I know the issue is at the array inside the struct, as when I remove
the array from the C++ struct and the C# struct I get the right
response.
Thanks in Advance.
abhi M

Apr 19 '07 #9
AM
Just so you guys know, I found a solution to the problem at the MSDN
forums. Here is a listing of the code

Code - header file

Header file
//Structure to store the result of the validation operation
struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray[4]; //validity of each of the channel data -
causing the problems
};

extern "C" __declspec(dllexport) void __stdcall _validateData(double
dataToMat[], int time, validationResult *retval);
Code - CPP file

Cpp file
extern "C" __declspec(dllexport) void __stdcall _validateData(double
dataToMat[], int time, validationResult *retval)
{

retval->micDataValid = 10;
retval->rWaveValid =20;

retval->signalStatusArray[0] =1;
retval->signalStatusArray[1] =2;
retval->signalStatusArray[2] =3;
retval->signalStatusArray[3] =4;
return;
}
Code - C# code

Here is a listing of the C# code
class Program
{
unsafe struct validationResult
{
int micDataValid;
int rWaveValid;
fixed int signalStatusArray[4];
}
static void Main(string[] args)
{
validationResult res;
_validateData(dataToMat, 2,out res);

//assume dataToMat is an array with //
data already in it
}
}
----------------------------------

Thanks again.
On Apr 19, 1:41 pm, AM <abhi.me...@gmail.comwrote:
When I use the struct u suggested
unsafe struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
fixed int signalStatusArray[4]; //validity of each of the
channel
data

};

I get the following error.
Unable to find an entry point named '_validateData' in DLL
'CppMatlabWrapper.dll'.

This error goes away When i remove the array fro both the C++ and the
C# structs. So I think It has something to do with the way my array is
declared in the struct.

Thanks.

On Apr 19, 11:52 am, "Ben Voigt" <r...@nospam.nospamwrote:
"AM" <abhi.me...@gmail.comwrote in message
news:11*********************@b75g2000hsg.googlegro ups.com...
In that case what should my C# definition look like for the
corresponding C++ definition mentioned below?
C++ struct
struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray[4]; //validity of each of the channel
data
};
C# (not compile tested)
unsafe struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
fixed int signalStatusArray[4]; //validity of each of the channel
data
};
or
struct validationResult
{
int micDataValid; //validity of the microphone data
int rWaveValid; //validity of the r Wave
int signalStatusArray_0; //validity of each of the channel data
int signalStatusArray_1;
int signalStatusArray_2;
int signalStatusArray_3;
};
Thanks
On Apr 19, 10:31 am, "Ben Voigt" <r...@nospam.nospamwrote:
>"AM" <abhi.me...@gmail.comwrote in message
>>news:11**********************@n59g2000hsh.google groups.com...
>I guess i did not copy my code correctly.
Here is what my C# struct looks like
public struct validationResult
{
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
//channel data
};
Are you suggesting that the the error is caused by my array definition
in C# is dynamic (because of the []), while my C++ array is of size 4?
>I am suggesting looking at the documentation for C# fixed-size buffers
>which
>is here:http://msdn2.microsoft.com/en-us/lib...ya(VS.80).aspx
>A dynamic (.NET) array carries additional stuff with it like length.
>Additionally, since .NET arrays are ref class, only a pointer is stored
>in
>the structure. This is totally different from the layout used by the C++
>structure definition you gave.
On Apr 18, 2:01 pm, "Ben Voigt" <r...@nospam.nospamwrote:
>"AM" <abhi.me...@gmail.comwrote in message
>>news:11*********************@o5g2000hsb.googlegr oups.com...
Hi,
I have a C++ Dll that has a function that is being exported as
shown below
extern "C" __declspec(dllexport) validationResult __stdcall
_validateData(double dataToMat[], int time);
A structure is defined in the header(.h file) as shown below
struct validationResult
{
int rWaveValid; //validity of the WAVE
int signalStatusArray[4]; //validity of each of the channel data -
'causing the problems'
};
I need to call the above method from C# in where i have the
following
structure defined
public struct validationResult
{
public int micDataValid; //validity of the microphone data
>magically appeared?
public int rWaveValid; //validity of the r Wave
public int[] signalStatusArray; //validity of each of the
channel data
>No, that doesn't match. A dynamically resizeable array is not the
>same
>as
>an inline array of size 4. Look for the 'fixed' keyword in the C#
>help.
};
And my function call is as shown
validationResult res = new validationResult();
res.signalStatusArray = new int[4];
res = _validateData(dataToMat, 2);
When the last line is reached i get an exception that says"Method's
type signature is not PInvoke compatible"
What am I doing wrong.
I know the issue is at the array inside the struct, as when I remove
the array from the C++ struct and the C# struct I get the right
response.
Thanks in Advance.
abhi M

Apr 23 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

18
by: Panchal V | last post by:
I want to access a variable length record in C, the format is as follows : +---+---+-----------+ | A | L | D A T A | +---+---+-----------+ A - Some Data (1 BYTE) L - Length the Data that...
60
by: Mohd Hanafiah Abdullah | last post by:
Is the following code conformat to ANSI C? typedef struct { int a; int b; } doomdata; int main(void) { int x;
36
by: Eric Laberge | last post by:
Hi! I'm working on automatically generated code, and need to assign arrays. memcpy is an obvious solution, but it becomes complicated to use in the context I'm working on, ie.: I could use it...
6
by: Angel | last post by:
I'm exporting (with DllImport) a C-style function with this syntax: int z9indqry (4_PARM *parm); 4_PARM is a structure declared in a proprietary header file that cannot be included in my...
5
by: Yourko | last post by:
Hi there! I`me currently trying to write some simple programs in C. For one such program i created globals.h file. In that file i defined a structure of type _client, and a pointer of that type: ...
18
by: Bryan Parkoff | last post by:
I hate using struct / union with dot between two words. How can I use one word instead of two words because I want the source code look reading clear. three variables are shared inside one...
5
by: pete142 | last post by:
Hi folks -- I have a 4-long array t of of struct Targets. And a table of int * in p. I need to set up the int * entries in p such that each can reference an int in any member of the Targets t...
0
by: =?Utf-8?B?U2hhcm9u?= | last post by:
I'm exporting a COM interface from my C# application. I want to to export a function that will have an array argument of structs. The struct is like: public struct MyStaruct { int A; int...
4
by: arnuld | last post by:
I am passing an array of struct to a function to print its value. First I am getting Segfaults and weired values. 2nd, is there any elegant way to do this ? /* Learning how to use an array...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.