Greetings,
I apologize for re-posting this, but I'm running out of options on my
side.
I've got a DLL that's not COM compatible and I'm stuck using interop
for the first time. I got couple of simple DLL calls all right but
cannot get the most important one to work.
Here is documentation:
---
int LoadSymbol( char*sym, void *data , int max_rec , bool
IGNORE_HOLIDAYS = true , bool RAWDATA = true ,usr_master_def*MasterRec
= 0);
Returns: Number of days loaded. Negative number indicates an error.
Parameters:
sym - Points to the stock symbol to load.
data - Points to an array of type Stock_Record.
max_rec - An integer value...
IGNORE_HOLIDAYS - Boolean value...
RAWDATA - Boolean value...
---
Here is C++ example:
....
char symbol[12];
#define MAX_RECS 10000;
Stock_Record data[MAX_RECS];
....
num = LoadSymbol( symbol , &data[0] , MAX_RECS , FALSE , TRUE , 0 );
....
Here is a definition for Stock_Record struct:
typedef struct
{
char MM;
char DD;
short YY;
float open;
float hi;
float lo;
float cl;
long vol;
char RS;
float oi;
} *LPSTOCK_RECORD, Stock_Record;
I don't know if a definition for Master_Rec is necessary (the last
argument for LoadSymbol function) since they just passed 0 in the
example. Pardon my naivety if it's totally wrong assumption.
Anyway, when I call this function (LoadSymbol) I got a positive number
returned meaning that records have been read. The only problem - they
have no data.
Here is C#:
[DllImport("reader.dll")]
public static extern int LoadSymbol(string symbol, Stock_Record[]
records, int maxDays, bool ignoreHolidays, bool rawData, int
masterRecord);
(I might have screwed up with "int masterRecord" part...). The
following is C# brother of Stock_Record:
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct Stock_Record
{
public string MM;
public string DD;
public short YY;
public float open;
public float hi;
public float lo;
public float cl;
public long vol;
public string RS;
public float OI;
}
And some execution code:
....
Stock_Record[] records = new Stock_Record[100];
int daysLoaded = LoadSymbol("MSFT", records, 100, false, true, 0);
....
The situation here is that "records" array contains elements with
default values - Stock_Record doesn't get populated.
Any help would be greatly appreciated (I really mean it).
Thank you. 1 1244
Are you sure your c# Stock_Record matches the sizeof() for the c struct typedef struct // num bytes { char MM; char DD; short YY; float open; float hi; float lo; float cl; long vol; char RS; float oi;
} *LPSTOCK_RECORD, Stock_Record;
C' chars are 1 byte and i dont think they map onto C# strings.. which are
probably sizeof( a pointer ) [ a guess ]
Try changing your strings in your mapped record to 'byte' .. eg and make
sure you map the C sizeof(long) to its .net counterpart
The C' short is 2bytes and you should probably use int16 on 32bit machine.
"yuriy_zubarev" <yu***********@yahoo.ca> wrote in message
news:11**********************@o13g2000cwo.googlegr oups.com... Greetings,
I apologize for re-posting this, but I'm running out of options on my side.
I've got a DLL that's not COM compatible and I'm stuck using interop for the first time. I got couple of simple DLL calls all right but cannot get the most important one to work.
Here is documentation:
---
int LoadSymbol( char*sym, void *data , int max_rec , bool IGNORE_HOLIDAYS = true , bool RAWDATA = true ,usr_master_def*MasterRec = 0);
Returns: Number of days loaded. Negative number indicates an error.
Parameters:
sym - Points to the stock symbol to load.
data - Points to an array of type Stock_Record.
max_rec - An integer value...
IGNORE_HOLIDAYS - Boolean value...
RAWDATA - Boolean value...
---
Here is C++ example:
... char symbol[12]; #define MAX_RECS 10000; Stock_Record data[MAX_RECS]; ... num = LoadSymbol( symbol , &data[0] , MAX_RECS , FALSE , TRUE , 0 ); ...
Here is a definition for Stock_Record struct:
typedef struct { char MM; char DD; short YY; float open; float hi; float lo; float cl; long vol; char RS; float oi;
} *LPSTOCK_RECORD, Stock_Record;
I don't know if a definition for Master_Rec is necessary (the last argument for LoadSymbol function) since they just passed 0 in the example. Pardon my naivety if it's totally wrong assumption.
Anyway, when I call this function (LoadSymbol) I got a positive number returned meaning that records have been read. The only problem - they have no data.
Here is C#:
[DllImport("reader.dll")] public static extern int LoadSymbol(string symbol, Stock_Record[] records, int maxDays, bool ignoreHolidays, bool rawData, int masterRecord);
(I might have screwed up with "int masterRecord" part...). The following is C# brother of Stock_Record:
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] public struct Stock_Record { public string MM; public string DD; public short YY; public float open; public float hi; public float lo; public float cl; public long vol; public string RS; public float OI;
}
And some execution code:
... Stock_Record[] records = new Stock_Record[100]; int daysLoaded = LoadSymbol("MSFT", records, 100, false, true, 0); ...
The situation here is that "records" array contains elements with default values - Stock_Record doesn't get populated.
Any help would be greatly appreciated (I really mean it).
Thank you. --- avast! Antivirus: Inbound message clean. Virus Database (VPS): 0606-4, 10/02/2006 Tested on: 10/02/2006 22:32:38 avast! - copyright (c) 1988-2005 ALWIL Software. http://www.avast.com
---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 0606-4, 10/02/2006
Tested on: 10/02/2006 22:42:27
avast! - copyright (c) 1988-2005 ALWIL Software. http://www.avast.com This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Dave |
last post by:
After following Microsofts admonition to reformat my system before doing a
final compilation of my app I got many warnings/errors upon compiling an rtf
file created in word. I used the Help...
|
by: wukexin |
last post by:
Help me, good men. I find mang books that introduce bit "mang header
files",they talk too bit,in fact it is my too fool, I don't learn it, I have
do a test program, but I have no correct doing...
|
by: Colin J. Williams |
last post by:
Python advertises some basic service:
C:\Python24>python
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
With...
|
by: Corepaul |
last post by:
Missing Help Files
When I enter "recordset" as the keyword and search the Visual Basic Help index,
I get many topics of interest in the resulting list. But there isn't any
information available...
|
by: Steve |
last post by:
I have written a help file (chm) for a DLL and referenced it using Help.ShowHelp
My expectation is that a developer using my DLL would be able to access this help file during his development time...
| |
by: yuriy_zubarev |
last post by:
Greetings,
I apologize for re-posting this, but I'm running out of options on my
side.
I've got a DLL that's not COM compatible and I'm stuck using interop
for the first time. I got couple of...
|
by: Mark |
last post by:
I have loaded Visual Studio .net on my home computer and my laptop, but my
home computer has an abbreviated help screen not 2% of the help on my laptop.
All the settings look the same on both...
|
by: JonathanOrlev |
last post by:
Hello everybody,
I wrote this comment in another message of mine, but decided to post it
again as a standalone message.
I think that Microsoft's Office 2003 help system is horrible, probably...
|
by: trunxnirvana007 |
last post by:
'UPGRADE_WARNING: Array has a new behavior. Click for more: 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="9B7D5ADD-D8FE-4819-A36C-6DEDAF088CC7"'
'UPGRADE_WARNING: Couldn't resolve...
|
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,...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
| |
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...
|
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,...
|
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: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
| |
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
| |