|
You need to use the .NET framework classes documentation.
There's no ListView.ListViewItemCollection.Add() overload that takes an array of Strings as a
parameter.
You could add one string at a time:
listView1->Items->Add("Element 1");
listView1->Items->Add("Element 2");
listView1->Items->Add("Element 3");
or maybe use ListView.ListViewItemCollection.AddRange().
Mark
-- modified at 16:07 Sunday 15th July, 2007
Mark Salsbery
Microsoft MVP - Visual C++
"Great job team! Head back to base for debriefing and cocktails."
|
|
|
|
|
By the way, your code is wrong as far as creating an array of strings! It should be:
<br />
array<String^>^ tabChaine = gcnew array<String^>(3);<br />
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
I assumed his angle brackets got html-formatted out.
That could be a completely invalid assumption
Cheers,
Mark
Mark Salsbery
Microsoft MVP - Visual C++
"Great job team! Head back to base for debriefing and cocktails."
|
|
|
|
|
Sorry, your assumption was correct. I loaded the source HTML and found:
cli::array<String ^, 1> ^ tabChaine = gcnew cli::array<String ^>(3); I guess we need to learn to check "Ignore HTML tags in this message" more often.
Geo
P.S. Thanks for your great answers and sense of humor in this forum.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
George L. Jackson wrote: I loaded the source HTML and found
Too much work for me....if I can't assume (wrongly or not) I'll ask the OP to repost.
I'm lazy
Thank you for your great posts as well! I just migrated all my code to VS2005 within the last
week. I've been using managed extensions for .NET coding so I put alot of stuff off so I
wouldn't get nailed with migration issues. Now that I can use it, I'm always watching posts for
new tips on managed code!
Cheers,
Mark
Mark Salsbery
Microsoft MVP - Visual C++
"Great job team! Head back to base for debriefing and cocktails."
|
|
|
|
|
i have creat capture.h et capture.cpp, in 1st i declared all variables us folow:
<br />
class capture<br />
{<br />
public:<br />
capture(void);<br />
~capture(void);<br />
public:<br />
int i;<br />
int k;<br />
void Ap();<br />
};
and for capture.cpp
<br />
#include "StdAfx.h"<br />
<br />
#include ".\capture.h"<br />
<br />
using namespace System;<br />
<br />
void capture::Ap() {...........................}
When i add capture.h {#include "capture.h"}in forme1.h, knowing that variable i déclared in capture.h.
In form1.h i use a variable i without declaration, there are error 'i' : undeclared identifier .
Please help me,
Thank you verry mutch
|
|
|
|
|
You haven't shown any global variables. All the variables shown are members of the class
capture.
You also didn't show how and where you try to use 'i'.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
This episode brought to you by the number 3
|
|
|
|
|
i use it us folow
public ref class Form1 : public System::Windows::Forms::Form<br />
{public:<br />
Form1(void)<br />
{ InitializeComponent();<br />
<br />
<br />
}<br />
<br />
protected:<br />
~Form1()<br />
{<br />
if (components)<br />
{<br />
delete components;<br />
}<br />
}<br />
<br />
<br />
<br />
<br />
#pragma region Windows Form Designer generated code<br />
void InitializeComponent(void)<br />
{.............................}<br />
<br />
<br />
<br />
<br />
private: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) {<br />
<br />
for (i=0;i<3;i++){...........}<br />
}.<br />
.<br />
.
thank you verry mutch
|
|
|
|
|
'i' would have to be used in a "capture" class method. 'i' is not global.
button12_Click() is not a capture class method so you need to define an automatic variable 'i'.
Two examples (2 different scopes for 'i'):
for (int i=0;i<3;i++){...........}
or
int i;
for (i=0;i<3;i++){...........}
Mark
Mark Salsbery
Microsoft MVP - Visual C++
"Great job team! Head back to base for debriefing and cocktails."
|
|
|
|
|
But when i was modified in button12, i can't see the modification in back of button12,
i would declare i in capture.h, and use it in form1.h by adding #include "capture.h", but unfortunaly this variable can't be identifiable in form1.h
Help me,
Thank you verry mutch
|
|
|
|
|
A variable needs to be static to be used without a class instance that contains it.
A delegate is a better way to communicate between classes.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
As Christian mentioned, i would need to be static to access it without an object of the capture
class.
You're leavig something out of your posted code so it's hard to help you.
Is button12_Click() a delegate? Is it a class member function (method)?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
"Great job team! Head back to base for debriefing and cocktails."
|
|
|
|
|
hi,
i would use delegate with associate a function
public :delegate void deleg(Packet^ e);<br />
event deleg ^arr;<br />
<br />
<br />
<br />
arr += gcnew deleg(this, DisplayListbox(e.Packet));<br />
<br />
arr(e.Packet);<br />
}<br />
<br />
void DisplayListbox(Packet^ value)<br />
{.................. }
there are error : Error 1 error C3364: 'BHIDS00::Form1::deleg' : invalid argument for delegate constructor; delegate target needs to be a pointer to a member function c:\documents and settings\abbd\bureau\bhids0.4\bhids0.0\Form1.h 788
thank you verry mutch
|
|
|
|
|
As indicated in the error message, the second parameter of the constructor needs to be the
address of a method, something like:
&class::methodname
Mark
Mark Salsbery
Microsoft MVP - Visual C++
This episode brought to you by the number 3
|
|
|
|
|
I know the reason that when we need to do shallow copy.But how copy constructor resolve this problem?I am not able to understand.
So please reply me as soon as possible.
Regards,
Pankaj Sachdeva
|
|
|
|
|
Please post questions not related to managed C++ on the
Visual C++/MFC board[^]
It's up to you to decide how objects are copied, either using the assignment operator or a copy
constructor. The difference between the two is right in the names -
An assignment operator assigns the "value" of one object to another object.
A copy constructor does the same but it's a constructor - it constructs the destination
object.
The compiler can only provide default copy semantics for objects based on the class of the object.
For any class which doesn't provide operators, this means a bitwise, binary copy.
In the case of pointers, this may not be what you want. You may want a copy of the data pointed
to by a pointer (deep copy), not just a copy of the pointer (shallow copy). To do this you need
to implement assignment operator(s) and/or a copy constructor for a class.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
This episode brought to you by the number 3
|
|
|
|
|
I have to write the event handler for MSCOMM.OnComm who is listening to serial port for data, so that the event is fired 'OnComm' is executed when the data is arrived.
My understanding for the documentation is unclear as how to achieve this.
Does any one have the sample source code implementation in C# / C++?
Thanks and Regards.
Amar.
|
|
|
|
|
hello,
I have a problem with rebuild the message is :
Command line error D8045 : cannot compile C file '.\NeticaEx.c' with the /clr option
and I changed the common language runtime support but there is no result, what is solution in this cases?
thnk you
aef
|
|
|
|
|
Maybe set the project property for the file to "Compile as C++"
(Properties/C-C++/Advanced/CompileAs)
Mark
Mark Salsbery
Microsoft MVP - Visual C++
This episode brought to you by the number 3
|
|
|
|
|
Hi, I'm using Visual Studio 2005 C++/CLI. If I start Visual Studio and click on file->new project to bring up the new project dialog box. Then I select project type C++/CLR and then select Windows Forms Application and click OK. The skeleton application is created. WITHOUT DOING ANYTHING ELSE, I add a menu item and double click on the menu item so Viual Studio will Automatically add the skeleton code in the Form1.h file. In the skeleton code I add "FileStream^ myStream = gcnew FileStream;". This does not compile! I get an "error C3767: 'System::IO::FileStream::FileStream': candidate function(s) not accessible". I have read on the internet that this has to do with a native type not explicitly made public, but where is my native type here! This is as basic as it gets, Visual Studio generated all of the code except the one line I added. What's wrong here?
Buck
|
|
|
|
|
FileStream doesn't have a public default constructor. You need to pick a constructor from the
list of overloads: FileStream Constructor[^]
For example, compare the compiler results of these two lines:
//FileStream ^strm = gcnew FileStream();
FileStream ^strm = gcnew FileStream(L"c:\\test", FileMode::Open);
Mark
Mark Salsbery
Microsoft MVP - Visual C++
This episode brought to you by the number 3
|
|
|
|
|
Right on! Works like a champ. More than two hours searching and reading posts and no one mentioned this. The important part is that now when I see this general compiler message I have an idea of what the problem is.
Thanks loads,
Buck
|
|
|
|
|
Hi, Using Visual Studio 2005 C++/CLI. I am trying to read a file using FileStream class and when I try to difine a file stream like FileStream^ myStream = gcnew FileStream; When I try to compile this I get an error C3767: 'System::IO::FileStream::FileStream': candidate function(s) not accessible. I have been looking around on the internet for a good answer to this but havn't found anything yet. Does someone know not only why this is hapening but how to make the function accessible?
Buck
|
|
|
|
|
Hi, I am new to CLI. Using Visual Studio 2005 C++/CLI. I have a simple app that I am beginning to develop. I created a CLR Windows Form app and gave the form1.h design some menu options. Then double clicked on a menu item and went to the generated function to add an OpenFileDialog. Just above the definition of the Form1 class I have using namespace defined for System, System::IO, System::Windows::Forms, and some other namespaces that I don't believe apply here. If I qualify the dialog result as System::Windows::Forms::DialogResult::OK then after the last double colon the intellisense puts up a list of results (OK, ABORT, etc.). But if I just type DialogResult:: then intellisense simply lets me choose between get() and set() properties so if I type if(openFileDialog->ShowFileDialog() == DialogResult::get()) I guess my question is...if the namespace that includes DialogResult is included why doesn't DialogResult:: give me a list of the possible results? Another issue is that I have another machine that uses the notation of ::DialogResult but if I try this on this machine I get a "not part of the global namespace" error. Any insight would be appreciated.
Buck
|
|
|
|
|
I left out half a sentence. ...so If I type "if(openFileDialog->ShowDialog() == DialogResult::get()) the conditional fails even though I clicked the OK button. I guess my question is...
|
|
|
|