|
This is the "Managed C++/CLI" forum! Please post this question in the ASP.NET or C# forum.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Hello,
I'm totally new on Managed C++ and I'm creating an VS2005 C++ application on which I need to keep information for logging purposes.
The data I need to store would have been saved in the old days in a structure like this:
struct tDataEntry
{
unsigned char data[8];
long id;
unsigned int length;
unsigned int flags;
unsigned long time;
};
Being a newbie on this I immediately started getting compiler errors like "cannot define 'xxx' as a member of managed 'XXX': mixed types are not supported", so I read a little bit about Managed Code, Mixed types, the GC, etc and I searched the web for an example that could help me out but couldn't find it.
I found some articles that were close to my problem where they suggested using templates to embed a native class in a ref class but when I added the extra complexity of the arrays it just didn't work.
Anyway, I need to be able to declare a fixed size tDataEntry array in my Form class so I can fill the elements, format the information, show it, etc.
Any help on this will be appreciated!
Thanks,
Chalo
|
|
|
|
|
|
Mark Salsbery wrote: It may help to read a little bit more
NO WAY! We write code! We don't need no stinkin readin!
|
|
|
|
|
ref class A
{
...
};
int main()
{
A objA;
return 0;
}
I thought we were not supposed to be able to use ref classes that way...only through tracking handles and tracking references. The above code compiles and runs. Could someone please explain it to me?
|
|
|
|
|
TripShock wrote: Could someone please explain it to me?
They implemented stack semantics[^] in C++/CLI
|
|
|
|
|
Why is it that I can't do this:
String yo;
|
|
|
|
|
From the docs[^]:
The following reference types are not available for use with stack semantics:
*delegate
*array (Visual C++)
*String
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Welcome to CodeProject
TripShock wrote: Why is it that I can't do this:
Because you need to do this:
String^ yo;
That said, if you had spent like 10 minutes reading any of the tons of beginner material here on this site and all over the internet related to the CLI subject, you would already know that. 10 minutes rather than the 3 hours you have waited for an answer from an internet forum.
10 minutes or 3 hours, you decide.
|
|
|
|
|
hi guys,
i am creating a VC++ program that connect to mysql database on remote server.i have tried few steps but it didnt work.i need advice on which database i should use and it must be in a remore location.
i create a mysql database on speedhosting.co.cc but its a database for php. Is it possible for a C++ program connect to it and get data from there ??
|
|
|
|
|
Thilek wrote: i am creating a VC++ program
Why have you moved this topic to the Managed C++/CLI forum? Are you doing CLI development?
Thilek wrote: i have tried few steps but it didnt work
We are not mystical beings and therefore have no idea what you have tried unless you provide that information.
|
|
|
|
|
i use .net for this program..
below is my coding :-
#pragma once
#include <mysql.h>
namespace trialcpp {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace MySql::Data::MySqlClient;
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
}
protected:
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ cmdLogin;
private: System::Windows::Forms::Button^ cmdExit;
protected:
private:
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{
this->cmdLogin = (gcnew System::Windows::Forms::Button());
this->cmdExit = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
this->cmdLogin->Location = System::Drawing::Point(52, 190);
this->cmdLogin->Name = L"cmdLogin";
this->cmdLogin->Size = System::Drawing::Size(75, 23);
this->cmdLogin->TabIndex = 0;
this->cmdLogin->Text = L"Login";
this->cmdLogin->UseVisualStyleBackColor = true;
this->cmdLogin->Click += gcnew System::EventHandler(this, &Form1::cmdLogin_Click);
this->cmdExit->Location = System::Drawing::Point(175, 190);
this->cmdExit->Name = L"cmdExit";
this->cmdExit->Size = System::Drawing::Size(75, 23);
this->cmdExit->TabIndex = 1;
this->cmdExit->Text = L"Exit";
this->cmdExit->UseVisualStyleBackColor = true;
this->cmdExit->Click += gcnew System::EventHandler(this, &Form1::Exit_Click);
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(326, 266);
this->Controls->Add(this->cmdExit);
this->Controls->Add(this->cmdLogin);
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void Exit_Click(System::Object^ sender, System::EventArgs^ e) {
this->Close();
}
private: System::Void cmdLogin_Click(System::Object^ sender, System::EventArgs^ e) {
MySqlDataAdapter^ mySqlDataAdapter=gcnew MySqlDataAdapter();
MySqlConnection ^conDatabase = gcnew MySqlConnection("Server=sql304.speedhosting.co.cc;Uid='speed_2972829';Pwd='kettavan'; Protocol=tcp; Pooling=false");
conDatabase->Open();
System::Windows::Forms::MessageBox::Show("Connection Successful");
conDatabase->Close();
}
};
|
|
|
|
|
led mike wrote: We are not mystical beings
speak for yourself...
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I knew there was something different about you!
|
|
|
|
|
about who ???
|
|
|
|
|
int BigNumber = Convert::ToInt64(BigString);
I am trying to create an Int (BigNumber) from a very long String (BigString, which is made up of let's say ~25 characters).
Should I use ToInt64 or ToInt32?
What are the character limits of the two? What's better?
Thank you!
|
|
|
|
|
Hi,
you probably know what the largest value is a 32-bit int can hold; if not look at Int32.MaxValue.
a 64-bit int can hold about the square of that.
Neither will reach a 25-digit string representation assuming decimal and no leading zeroes.
Also it does not make sense to call ToInt64 and store the result in an int; the compiler will object
to that.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Neither Int32 or Int64 are going to hold a ~25 digit number.
2^32 = 4294967296
2^64 = 18446744073709551616
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Mark Salsbery wrote: 2^32 = 4294967296
2^64 = 18446744073709551616
Actually for signed integers the maximum values are one less than half of those numbers.
BTW: you should use thousand separator characters to keep such numbers somewhat readable...
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Yeah.....um....thanks for the tips Luc
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
You err are welcome.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Mark Salsbery wrote: thanks for the tips
Here's another:
If you give a man a fish he'll stink up the whole village, but give him a fishing rod, see where I'm going with this? Give him a fishing rod and he'll poke yer eye out.
|
|
|
|
|
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
One should always wear safety glasses when using hazardous equipment, such as Windows PCs.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
int MyInt;
String^ MyString = MyInt.ToString();
Guys, I need some help on C++/CLI please.
Given an Int ("MyInt") how can I generate a string called "MyString" which is made up of only the first let's say 5 digits of the Int? I guess there must be a simple attribute that I can specify in the line above but I cannot find the right sintax. Any help would be appreciated. Many thanks.
|
|
|
|