|
Thank you for your suggestions, which compiler environment should I prefer to develop my codes in C++? This compiler environment is surely helpful to implement and interesting to increase work desire.
Best regards,
Semih
|
|
|
|
|
sergin80 wrote: which compiler environment should I prefer to develop my codes in C++?
C/C++ uses the same compiler. I recommend Visual C++ and GCC.
sergin80 wrote: This compiler environment is surely helpful to implement and interesting to increase work desire.
True. In this regard, VC++ probably motivates the learning process more.
Best,
Jun
|
|
|
|
|
sergin80 wrote: In order to appropriately achieve this, could you send your directions and suugestions?
I highly recommend Accelerated C++[^] as a standard C++ introductionary text.
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
I'm working with the XmlTextReader and I'm having some difficulty navigating through the xml document. The issue I'm running into is getting the attributes from the child nodes of a specific element. Here is a sample layout of the xml document.
<sample>
<hw id="HP-D500" name="Compaq Evo D500 Desktop" type="Desktop">
<software fn="SP26150.exe" title="HP Easy Access Keyboard Driver for Windows 2000/XP" type="DRIVER"
category="Input Devices" version="8.0.0.683" path="OS\ID\HP\KB" si="setup.exe -s"></software>
</hw>
<hw id="HP-D510" name="Compaq Evo D510 Small Form Factor" type="Desktop">
<software fn="SP26150.exe" title="HP Easy Access Keyboard Driver for Windows 2000/XP" type="DRIVER"
category="Input Devices" version="8.0.0.683" path="OS\ID\HP\KB" si="setup.exe -s"></software>
</hw>
<hw id="HP-N600c" name="Compaq Evo n600c Notebook PC" type="Laptop">
<software fn="SP22515.exe" title="Easy Access Buttons" type="Application"
category="Input Devices" version="3.00" path="OS\ID\SP22515" si="setup -s -SMS"></software>
<software fn="SP27852.exe" title="HP Notebook LidSwitch Policy" type="DRIVER"
category="OS and OS Enhancements" version="2.02" path="OS\Enh\SP27852" si="setup.exe -s"></software>
<software fn="SP21661.exe" title="Synaptics Touchpad Driver for Windows 2000 and XP" type="DRIVER"
category="Input Devices" version="6x" path="OS\ID\SP21661" si="setup.exe -s -SMS"></software>
<software fn="SP22442.exe" title="Compaq Hotkey Support Software" type="Application"
category="OS and OS Enhancements" version="1.1" path="OS\Enh\SP22442" si="\disk1\setup.exe -s -SMS"></software>
</hw>
</sample>
Here is the function implementation that is parsing the file.
StringCollection* ESBPARSER::getModelSoftware(XmlTextReader* Reader,String* modelName)
{ //modelName contains the attribute from a hw element name id.
StringCollection* SOFTWARE_LIST = new StringCollection();
try {
while (Reader->Read())
{
if (Reader->NodeType == XmlNodeType::Element)
{
if (Reader->HasAttributes)
{
Reader->MoveToAttribute("name");
int strVal = Reader->Value->ToString()->CompareTo(modelName);
if (strVal == 0)
{
// Logic to Get each Child element attribute name title
}
}
}
}
}
catch(...){
MessageBox::Show(S"An Error has occurred while trying updating hardware list box.");
}
return SOFTWARE_LIST;
}
Any help would be greatly appreciated.
TIA
|
|
|
|
|
Is it possible to use C++/CLI for Mobile Device, PPC 2003 /2005
thank
|
|
|
|
|
Yes VS2005 supports Windows mobile developemnt using C++/CLI.
cheers ..Milton KB
|
|
|
|
|
Thank for your answer,
So I tried to create 2 smart device projects in MFC and WTL , but I can find /clr option for compiler in project Setting, it is normal?
@+
PS: I use VS2005 Professional Edition
|
|
|
|
|
Yes It is. this is normal. it means that u can use >net assemblies as well.
cheers... Milton KB
|
|
|
|
|
Ok,
I adde in my project
#using <mscorlib.dll>
#using <System.dll>
using namespace System;
An d I got this error :
error C2871: 'System' : a namespace with this name does not exist
What happend ?
Thank
|
|
|
|
|
Which project template and project type u selected ?
|
|
|
|
|
It is Visual C++ /Smart Device /MFC Smart Device Application and WTL ATL/WTL Application Wizard for Windows CE.
?
|
|
|
|
|
So I think C++/CLI is not supported for Smart Device, I can't find any information about this possibility
@+
|
|
|
|
|
It looks like the case. But under C# category, VS 2005 supports a few Device project templates. I can't figure out why there is no C+/CLI support for Device development.
Best,
Jun
|
|
|
|
|
I got an answer from Microsoft about C++/CLI for Smart Device :
There are no plans for C++/CLI on devices. Native C/C++ plus P/Invoke/COM can be used to interop with legacy C/C++ code.
|
|
|
|
|
Thanks for the heads-up.
Best,
Jun
|
|
|
|
|
I'm trying to create a .dll using ATL, which I want use in C#.
Can anybody please guide me to create a simple method / function which takes string in input parameters and returns the same(string)..
I tried a lot but always faced problem of returing string back to calling function in C#.
I did the same with C++ class library successfully but when it comes to ATL its not the same.
As I'm using other SDK API's in creation of .dll and I can't go with Class Library its having problem with "CLR and MTd". Which can't go together. Finally I decided to stick to ATL.
Now please guide me to create the methods which I can use in C# to get the string value.
Arun
|
|
|
|
|
Use the below signature for the COM method. Then use RCW to call this method from .Net
[id(1)] HRESULT ReturnString([in,out] BSTR stringValue);
cheers....MIlton KB
|
|
|
|
|
I have a 3th party dll writen in C. I have no problem calling most functions in the dll from the managed code. But there is a function that take a function pointer for setting a callback function that I am having problems with.
I have the following code:
First in a wrapper class
[DllImport("w32dll.dll")]
static void dllSetCallFp( void (*aFp)(void*) );
Then in seperate class.
delegate void funDelegate(void*);
typedef void (__cdecl *FUNPT)(void*);
funDelegate ^ fp = gcnew funDelegate(MFun);
pin_ptr<funDelegate^> pp = &fp;
IntPtr ip = Marshal::GetFunctionPointerForDelegate(fp);
FUNPT cb = static_cast<FUNPT>(ip.ToPointer());
Wrapper::dllSetCallFp(cb);
MFun is just a test function.
void Client::MFun(void* pV)
{
int i = 9;
}
The problem is I can debug into the calling of MFun but when I return I get the following errors
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
Then
'FatalExecutionEngineError'
Can anyone help me with this?
-Thanks
|
|
|
|
|
Just a thought. Is it possible to use a function pointer directly, instead of marshalling from a delegate?
Best,
Jun
|
|
|
|
|
Multidimension arrays
Read dozens of examples given on website how to do an single array with
the System::Array etc. But I can't get the hang of it how to use it properly.
I keep getting error messages when I hit the build button.
For example I want a simple 2 dimension array of the integer type.
in the old code it was:
int board[16][16];
board[3][3] = 5;
if i try to use the managed version:
array<int^,2>^ m_Board = gcnew array<int^,2>(16,16);
for (int row = 0; row < 16;row++)
{
for (int col = 0; col < 16;col++)
{
m_Board[row][col] = 0;
}
}
I get error message on my screen.
Also I can't find anything about freeing the memory in the articles.
Is it neccessary if you use it in a class.
How do I free it if it's necessary?
Can I change the size of the area dynamically?
"Knowledge shouldn't be preserved by one, but shared with others."
-- Preminition
|
|
|
|
|
|
|
I'm having a problem using the DataGrid/DataGridView within a MFC dialog (using the CWinFormsControl< > template).
I create a DataSet from a Xml file and then set it to the DataSource. I also set the DataMember to the appropriate table name, but nothing is displayed in the grid view. I tried other various approaches, but nothing seems to work.
I have no problem setting this up in WinForms - it won't work in MFC. I know the data's there because I can actually step right into it from the DataGrid object (debugger) - it just won't display - the ColumnCount is still 0.
What's the problem? Has anyone else experienced this?
|
|
|
|
|
PlayerBalance is a String Data Type
Bet is a Int32 Data Type
I use this Conversation method
Bet = System::Int32::Parse(PlayerBalance); //Its OK
But This code not work; //error C2865: '<' : illegal comparison for handle type
if(Bet < 200)
{
MessageBox:Show("OK");
}
Best Regards...
|
|
|
|
|
Hi,
Int32 is a value class, you probably used ^ there.
Int32 Bet; // should be fine
regards Tobias
|
|
|
|