|
As far as I know, you cannot create copy constructors in VB.NET. It is possible a GC object may have been created on the stack (You have a missing "^" and "gcnew" somewhere!) when the code was converted from VB.NET.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
I've given up on using Jeff's encryption library and decided to use the System::Security::Cryptography stuff instead. But just look at how much code is required to encrypt a string. Sheesh!
<br />
System::String^ EncryptString(System::String^ str) <br />
{<br />
System::IO::MemoryStream^ ms = gcnew System::IO::MemoryStream;<br />
SSC::RijndaelManaged^ rm = gcnew SSC::RijndaelManaged;<br />
SSC::CryptoStream^ cs = gcnew SSC::CryptoStream(ms, rm->CreateEncryptor(), SSC::CryptoStreamMode::Write);<br />
System::IO::StreamWriter^ sw = gcnew System::IO::StreamWriter(cs);<br />
sw->Write(str);<br />
<br />
sw->Close();<br />
cs->Close();<br />
ms->Close();<br />
<br />
array<System::Byte>^ buff = ms->ToArray();<br />
<br />
System::Text::UnicodeEncoding^ enc = gcnew System::Text::UnicodeEncoding;<br />
return enc->GetString(buff);<br />
}<br />
|
|
|
|
|
Ralph A. Moritz wrote:
array^ buff = ms->ToArray();
my code got mangled there. The above should read:
array<System::Byte>^ buff = ms->ToArray();
|
|
|
|
|
Sounds like you should write a wrapper class, or at least a wrapper method.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
I don't have VB.NET installed (untick it out of habit) - but I looked at the VB code and it looks like the constructor's first argument is specified as By Val. Try de-referecing the handle and pass that - it may not work, but worth a try :-
Encryption::Symmetric^ sym = gcnew Encryption::Symmetric(*Encryption::Symmetric::Provider::Rijndael);
|
|
|
|
|
Sorry - scrap what I said. The argument is an enum.
|
|
|
|
|
How i converting value to string in c?
example:
int x=205;
char *str[10];
str=val(x); //i want str to be "205"
|
|
|
|
|
sprintf is the C way to do it. ostringstream is the c++ way. I did an article on ostringstream, here on Code Project.
You said C, and the code looks like C, so if it's not C++, google for sprintf, you should get a better understanding than I could give by just telling you how to do this one example.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
oops - just realised this is the C++/CLI forum. You are asking in the wrong place, try the Visual C++ forum ( my answer is still right, but for future reference... )
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
hi
im preety new to topic: "creating MEX-file with c++ files" so forgive me.
i've read some articles about creating MEX files in MATLAB by #C. i've also done some examples and it worked good.
but what about compiling a c++ code ?
my program is not funciton, called up with parameters. it's a simple one-way-working with no options code
when i try to compile it in matlab several errors occurs. i dont use mexFunction...
|
|
|
|
|
Do you mean C++/CLI, or are you in the wrong forum ?
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
hi, cam we make an exe appplication that works in a Dos mode using linux
and how it can be.
thank for your help
|
|
|
|
|
OK, you want it to run under linux. Well, this site is mostly about windows, this forum is entirely about C++/CLI ( that is, C++ with .NET ). Unless you're asking a Mono question, you're in the wrong forum.
But, a program that's written in C++ works in 'DOS mode' by default, if you mean in a console instead of with windows.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
Visual C++ compiles windows exe. It doesn't work in pure DOS.
I suggest, you get a compiler, that compiles under pure dos. I suggest Turbo C++.
Visual c++ compilers will compile a dos box version, but it won't run in pure dos. Windows XP, and higher version, doesn't use dos. Windows 9x or lower still depending on dos.
In orther to use dos in linux, you have to get a linux version of dos emulator dosbox. In some distribution, it's included.
|
|
|
|
|
Hi all,
I have a situation where I need to return a fixed length string regardless of the length of a string that has been assigned to it. For example, if I wanted to have String1 which is made up of 12 spaces, then assing a returned value to a String2 which can be anything from 1 to 12 characters in length, how is this best done ?
The following may give you an idea where I'm coming from:
String^ Result; //This needs to be a fixed 12 characters.
String^ s1 = "ABC";<br />
<br />
Result = s1;
So I need Result to return 'ABC' + 9 spaces.
Hope this all makes some sense....
Fritzables.
|
|
|
|
|
String^ result;
String^ s1 = "ABC";
result = (s1->Length > 12 ? s1->Substring(0, 12) : s1)->PadRight(12);
Console::WriteLine("[{0}] Length={1}", result, result->Length);
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
George, you're a legend.... works a treat.
Thanks a million.
Regards
Pete <fritzables>
|
|
|
|
|
hi, i want to make a network application that can be used in a standard Dos
not in the windows that mean it work in Dos Mode, the application is a sniffer so i can recieve and transmit the whole packet. so is there any library that can i use it to achieve my point, and thanks for all
-- modified at 13:44 Friday 19th January, 2007
|
|
|
|
|
When you say DOS application, do you mean a Console application?
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
You want to do this in C++/CLI ? The .NET framework has heaps of libraries, including ones for networking.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
IF you want to use C, you're definatley in the wrong forum
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
This is absolutely the most insane thing I've ever had to do in programming, and I don't even know if it's possible. Please help.
I have an app built with the /clr switch. I have a DLL that contains custom controls, built with the /clr:pure switch because building custom controls with the /clr switch freaks out the IDE designer and I get the message "Failed to load. Custom control will be removed from toolbox."
Now, the custom control in the DLL needs to trigger certain methods of an unmanaged class in the main app. If this was all managed code, I could use delegates. If this was all unmanaged code, I could use function pointers. But how do I pass the address of an unmanaged function to a managed class?
Right now, my unmanaged function signature is like:
public void MyClass::MyFunc(short);
My DLL control managed typedef is:
typedef void MyDllFunc(short); //matches the signature of the unmanaged main app method
My DLL control field is declared:
MyDllFunc *myCall;
In the main app I try to make the assignment:
myControl->myCall = &MyClass::MyFunc;
But I get the compiler error: "Cannot convert 'void(__thiscall MyClass::MyFunc::*)(short)' to 'void(__clrcall *)(short)'".
So what can I do to call an unmanaged function in the main app from a managed function in a DLL?
|
|
|
|
|
There are helper methods to do this. Nish is the person to ask. I'll ping him if I see him online - it's in his ( not yet published ) book.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
I dont know if this will help but I used boost events to do something similar. I have a managed template that attaches to the boost event in the unmanaged class and exposes a dot net event with the same arguments. When the boost event fires the dot net event is raised
System.IO.Path.IsPathRooted() does not behave as I would expect
|
|
|
|
|