|
But they are not created instant for an structure... instead of that they calculated offset value for each variable which is present in the structure. I dont know why they using such procedure...
|
|
|
|
|
So you have the memory address, and you know the structure format, just cast the address to a struct pointer and access it as mystrinstptr->x1[100]
If you dont have access to the memory you cant do anything.
==============================
Nothing to say.
|
|
|
|
|
Hi,
It sounds to me like you want to do this with the compiler preprocessor. Yes you can do this but it will be very ugly indeed. You will need to build the structs with #define statements and you can retrieve the member names with the #NAME directive[^]. You can get the offset to the struct members with the FIELD_OFFSET macro.
Best Wishes,
-David Delaune
|
|
|
|
|
I wrote a file using WriteFile, and then I read the file back and used swscanf_s, sort of using swprintf_s backwards thinking that it will just pick up the data and assign it.
So I wrote the file like this
swprintf_s( pzDataBuffer_Project, L"PROJECT: %s; %s; %s; %s; %s; %s;\r\nENDPROJECT\r\n", pzProject.szProject_Name, pzProject.szProject_Type, pzProject.szProject_Path, pzProject.szProject_DomainName, pzProject.szProject_LicenseKey );
To produce this, the file contents, Another line of code create the prefix
Internet Commerce Engine 5 Project File, Format Version 1.00
Site Administrator 2012
PROJECT: Dinostone; North American Standard Edition 2012; C:\NASE2012_Projects\Dinostone; www.dinostone.com; B1M6-19M2-MEM0-6L6J; 銁녪;
ENDPROJECT
And then read the file, and used swscanf_s to assign the pointers
iReturnFields = swscanf_s( pzDataBuffer, L"PROJECT: %s; %s; %s; %s; %s; %s;\r\nENDPROJECT\r\n", szProject_Name, szProject_Type, szProject_Path, szProject_DomainName, szProject_LicenseKey )
DWORD dwErrorCode = GetLastError()
The information on msdn was sort of vague,
Question:
Is my format not possible for swscanf_s, to assign the pointers?, or do I just have a syntax error in my format?
|
|
|
|
|
jkirkerx wrote: Is my format not possible for swscanf_s, to assign the pointers?, or do I just have a syntax error in my format? Can't you just view the variables using the debugger to see if they contain the proper values?
If there's a syntax error, the compiler should tell you.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
I did use the debugger, and it never generated an error, until I did some experimenting and generated an i/o error.
I'm way off base here on implementation, and I'm going to send this code to the trash and start again.
|
|
|
|
|
you need to change your file format and also need to change the parsing style. it wont work. swscanf_s function stop reading when it gets a space
|
|
|
|
|
johny10151981 wrote: swscanf_s function stop reading when it gets a space Not necessarily.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
Back to the drawing board for me.
|
|
|
|
|
Hi,
How can I get the directory
"C:\Documents and Settings\Default User\Application Data"
I tried with SHGetSpecialFolderLocation but no result.
|
|
|
|
|
According to this[^], it is no longer supported. Have you tried to use SHGetFolderLocation[^] instead?
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
|
|
|
|
|
No i didn't try, Also I don't know how set the Flag to obtient the path.
|
|
|
|
|
SHGetFolderPath() , perhaps.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
How are you calling it? What is it returning? What values are you using for hToken and nFolder ?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
I tried like this :
HRESULT hRes = SHGetSpecialFolderLocation( NULL, CSIDL_PROFILE, &pidl );
if (SUCCEEDED(hRes))
{
SHGetPathFromIDList(pidl, lpPath );
}
|
|
|
|
|
What is it returning? Shouldn't you be using CSIDL_APPDATA instead (if you are wanting the Application Data folder)? As has already been suggested, use SHGetFolderLocation(NULL, CSIDL_APPDATA, -1, 0, &pidl) instead.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
I'm confused with suggestions given
Please can you give just one solution which works
|
|
|
|
|
Ok, it is solved doing as DavidCrow say :
HRESULT hRes = SHGetFolderLocation(NULL, CSIDL_LOCAL_APPDATA, HANDLE(-1), 0, &pidl);
Thank you
|
|
|
|
|
I've just started a new VC++ Form project. I understand that I can manipulate my forms through events on the generated form header file.
However, for better design, I want to be able to update the form from external controlling objects (for instance when new data is generated in the system at large).
The problem is, in the generated main file, Application::Run( gcnew <formname>() ); means that I can't send any commands through (e.g. changing text on a button) because this is constantly running until the form is closed.
How do you typically deal with this? Am I approaching this in the wrong manner?
Many Thanks in advance for your help.
|
|
|
|
|
f9073341 wrote: The problem is, in the generated main file, Application::Run... Is this a C# or managed C++ thing?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
This is Visual C++. I'm using the Express edition, but I don't think that matters. I suspect I'm just going about it the wrong way
|
|
|
|
|
Member 8758134 wrote: This is Visual C++.
But is it managed or unmanaged? That detail does matter.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
David is right... it does matter... when you refer to "forms", you're usually talking about .net based stuff (either C++/CLI or C#). There's another forum for that.
|
|
|
|
|
|
You need to be asking this in the managed C++ forum.
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Please stand in front of my pistol, smile and wait for the flash - JSOP 2012
|
|
|
|