|
Just curious. This is one continuous question.
Why not Start a new managed mixed mode assembly project?
Put in some test code to exercise a few things first and make sure it compiles. Create a C# application that references the assembly and uses it to make sure it executes without crashing.
Then add your native C++ files from the Console application to the new project and start developing the managed wrapper.
led mike
|
|
|
|
|
I am trying to catch an exception..
<br />
<br />
try{<br />
<br />
ListViewItem^ lvi = gcnew ListViewItem(listViewDisplayArray);<br />
<br />
ListViewItem^ lviCheck = gcnew ListViewItem(listViewDisplayArray);;<br />
<br />
<br />
lviCheck = objListView->FindItemWithText(listViewDisplayArray[1]->ToString()); <br />
<br />
<br />
if(lviCheck)<br />
<br />
{ <br />
<br />
<br />
<br />
;<br />
<br />
}<br />
<br />
else<br />
<br />
{<br />
<br />
objListView->Items->Add(lvi);<br />
<br />
objListView->Update();<br />
<br />
}<br />
<br />
<br />
System::Threading::Monitor::Exit(this); <br />
<br />
}<br />
<br />
catch(NullReferenceException e)<br />
<br />
{<br />
<br />
;<br />
<br />
}<br />
<br />
and I am getting these two errors:
Error 1 error C2725: 'System::NullReferenceException' : unable to throw or catch a managed object by value or reference c:\faltu test\tabsearchpatch\tabsearchpatch\SearchFiles.h 282 tabSearchPatch<br />
Error 2 error C2316: 'System::NullReferenceException' : cannot be caught as the destructor and/or copy constructor are inaccessible c:\faltu test\tabsearchpatch\tabsearchpatch\SearchFiles.h 282 tabSearchPatch <br />
Why is that?
How to solve this?
Som
|
|
|
|
|
Som.Paul wrote: catch(NullReferenceException e)
What about
catch(NullReferenceException ^e)
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hello, everyone. I am absolutely at my wit's end with this issue, and I really hope that one of you can give me a nudge in the right direction.
I am working on a custom UserControl that I will use in several other projects. Everything is going great, except for the fact that I cannot figure out how to embed images in the compiled DLL so that they can be accessed programmatically. To simplify my question, let's say that I want to load one image from a selection of several within the executable and display it in a PictureBox, since being able to do that will enable me to do what I'm actually working on.
I don't want to preload an ImageList, since my images are larger than it can handle. I've found a ton of documentation on using resource files in Visual Studio, but it all seems very geared towards localization, which makes them way more complicated than what I am trying to accomplish. I've tried adding a .resx file containing the images to my project and accessing them with a ResourceManager, but I get runtime errors to the effect that my resource file was not properly linked it, leading me to believe I'm going about the whole thing wrong.
This just can't be this complicated. Can someone please give me a quick primer on how to create/interact with embedded images in C++/CLI without messing with all of that localization madness?
Thank you all so very much.
|
|
|
|
|
Assembly.GetManifestResourceStream
led mike
|
|
|
|
|
Hey, thanks for the reply. I finally managed to figure out my issue, but I sure do appreciate the help. For my own learning, though, MSDN says that Assembly.GetManifestResourceStream should not be called from managed code. Why did you direct me towards that method?
In case anyone as confused as I was finds this with Google or something, my problem was that I wasn't supplying the ResourceManager constructor with the proper arguments. If your project namespace is "Project," and your included .resx file is named "Stuff.resx," then you need to create the ResourceManager like this:
ResourceManager^ resources = gcnew ResourceManager("Project.Stuff", Reflection::Assembly::GetExecutingAssembly());
It was the "Project.Stuff" bit that got me. I wasn't getting the point from the exception thrown when I tried to use "Stuff"
Thanks again.
|
|
|
|
|
Oddball wrote: MSDN says that Assembly.GetManifestResourceStream should not be called from managed code
Interesting, since it returns a managed object. Where did you see that??
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Mark,
My mistake! I gave MSDN only a cursory glance, and ended up looking at _Assembly::GetManifestResourceStream residing in System.Runtime.InteropServices without realizing it. That page contains the line "This method is for access to managed classes from unmanaged code, and should not be called from managed code" immediately before a link to where I should have been looking.
Thanks again!
|
|
|
|
|
Oddball wrote: In case anyone as confused as I was finds this with Google or something
Got it in one! After a whole day of googling I finally entered the correct set of keywords that led me here.
Your reply was absolutely perfect for what I needed. I have been going insane all day
Thank you so much.
Cheers
[d3m0n]
Email (replace "***" with "key")
|
|
|
|
|
Hey, I'm glad you were able to find the post, then! It always drives me crazy when googling around for answers leads me to a thread that ends in "Oh, I fixed it, never mind" with no solution.
|
|
|
|
|
Hi I was wondering to read a file in and display this file in a listbox.
I know how to do this in the console programming but not sure how to do this in windows forms.
This how I do it in console programming. Just not sure how to do this in windows forms.
<br />
int openFile()<br />
{<br />
ifstream filex;<br />
filex.open ("test.txt", ios::in );<br />
<br />
if (filex.is_open())<br />
{<br />
<br />
filex.seekg (0, ios::end);<br />
size = filex.tellg();<br />
<br />
filemem = new char [size]; <br />
<br />
filex.seekg (0, ios::beg);<br />
filex.read (filemem, size); <br />
<br />
ifstream fin("test.txt",ios ::in);<br />
<br />
cout << cin.rdbuf();<br />
<br />
<br />
filex.close();<br />
}<br />
else <br />
{<br />
cout << "Unable to open file";<br />
}<br />
return 0;<br />
}
Thanks
The New kid
|
|
|
|
|
|
Hello!
I am about 2 hours into looking at Managed Code, so I'm completely new to this. The problem I'm running into is casting a managed type to an unmanaged type.
I need to cast a cli array of unsigned char into unsigned char *.
Is there a Marshal:: function that can do this for me?
Here's what's going on...
MyFunction accepts (unsigned char *)
MyFunction((unsigned char*)&pStructure->pCliArrayOfUChar)
This obviously doesn't work because you can't cast from managed to unmanaged. (I just learned this!)
Thanks for your help!!
|
|
|
|
|
ChemmieBro wrote: I am about 2 hours into looking at Managed Code
ChemmieBro wrote: I need to cast a cli array
Not sure I understand. If you are only two hours into learning managed C++ then how can you "need" to do something specific?
|
|
|
|
|
|
Dear Sir, This below what I do that is not working I do know why ?
I need to verify if what I capture in the field j01 of my form is inside "APC" string.
This is not working. I don't understand.
Help me
private: System::Void j01_Leave(System::Object^ sender, System::EventArgs^ e) {
String^ pta = "APC";
if(this->j01->Text->Trim()->Contains(pta)== false)
{
::MessageBox::Show("Code Pointage inexistant");
this>j01>Text = "";
this>j01>Focus();
}
}
|
|
|
|
|
Did you get a beginners book yet? Did you sign up for a University Course? What are you doing to learn basic fundamental programming topics?
|
|
|
|
|
What are loss if you help me ? The forum is there for that, I don't understand now what this forum want to ask.
|
|
|
|
|
If there is a forum for the beginer in Visual c+ NET, show me it
|
|
|
|
|
Also....what does "not working" mean?
What are you expecting to happen and what is actually happening?
What is "this->j01"?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
It not Works Means, Any character I capture in my text field; the test is false.
I expect that if the character is in the string , the test be True else false. But Now any character I capture the test is false.
Why ?
|
|
|
|
|
In the code shown, it should only be true if the string "APC" is found in the text.
Are you saying if you type in "APC", it still returns false?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I need to know if what I capture in my text field this->J01->text is in this string "APC". For that I use Contains methode.
|
|
|
|
|
I still don't understand what you want.
You have this:
String^ pta = "APC";
if(this->j01->Text->Trim()->Contains(pta)== false)
...
Contains() does a CASE-SENSITIVE search in the j01->Text string for the string "APC". If you type APC in the textbox, it should return true.
mikobi wrote: I need to know if what I capture in my text field this->J01->text is in this string "APC"
If this is what you want then you coded it backwards. You should be searching the string "APC" for the contents
of j01->Text.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
NO, What I need is to capture either A, Either P, Either C or another character at one time in my J01->Text field. I need to verify if a Character I capture is one of the character 'APC'
If I capture either A,eitherP,either C, the test must be true.
But if a capture another character the test must be false. This is what I need to realise.
I waitting your reply
|
|
|
|