|
What's not working? Code?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Snippet of the code not working could help us see where the problem may be...
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
In other Application When Deserialize Object
errror : i can't find assembly Application name
|
|
|
|
|
in Serialize Application :Project Name = AppSerialize
//////////////////////////
Image ^image=Image::FromFile(file)
FileStream ^file=gcnew FileStream(...)
BinaryFormatter ^formatter=gcnew Binaryformatter;
formatter->Serialize(file,image);
////////////////////////////////////////////
In deserialize Application : Project Name =AppDeserialize
Image ^image....
FileStream ^file=gcnew FileStream(FileSerialize)
BinaryFormatter ^formatter=gcnew Binaryformatter;
image=(Image ^)formatter->Dererialize(file);
///////// Error In Deserialize
error : can not find assembly AppSerialize and .......
|
|
|
|
|
Did you ever get this working?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I can Serialize And Deserialize In One Application .
i workinn Server And client Application so i need Send Struct to Client
when i serialize Struct and Send , in client Application can't Deserialize Struct
|
|
|
|
|
The problem is, the same assembly needs to be used to deserialize as the one that serialized it.
There's ways around this though, if you don't want to keep a separate assembly to maintain
on both ends.
Please post the EXACT exception message (entirely) and I'll show you an example...If you'd like.
You can get the message from the exception by wrapping your deserialize code in a try block and
adding something like
...
catch ( SerializationException^ e )
{
Console::WriteLine( "Failed to deserialize. Reason: {0}", e->Message );
}
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
in SerializeApp :
[SerializableAttribute]
ref struct MyStruct
{
int n;
int j;
};
MyStruct ^my=gcnew MyStruct;
my->j=1;
my->n=1;
FileStream ^file=gcnew FileStream("c:\\Test.dat",FileMode::Create);
BinaryFormatter ^formatter=gcnew BinaryFormatter;
formatter->Serialize(file,my);
///////////////////////////////////////////
In DeserializeApp :
FileStream ^file=gcnew FileStream("c:\\Test.dat",FileMode::Open);
BinaryFormatter ^formatter=gcnew BinaryFormatter;
try
{
MyStruct ^my=(MyStruct ^)formatter->Deserialize(file);
}
catch (SerializationException^ e)
{
textBox1->Text=e->Message;
}
Error:
Unable to find assembly 'SerializeApp, Version=1.0.2987.23837, Culture=neutral, PublicKeyToken=null'.
|
|
|
|
|
|
Good article Giorgi!
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks Mark
|
|
|
|
|
|
You are welcome
|
|
|
|
|
When I Seriliaze Object In the File how To save Assembly Name And Typename with My self
|
|
|
|
|
Hi,
I'm using a commandbox for the user to select commands and they pass these commands to a listbox and therefore whatever commands in the listbox are ran when the user clicks on "Run Commands" button.
The problem is if more than one command in the list box then only the first command is ran. If I try to add a queue behind the listbox then the program crashes.
Anyone have any ideas to solve this problem?
Cheers
<br />
<br />
if(lstCommands->Items->Count >0)<br />
{<br />
if(lstCommands->Items->Contains("Move forward")) <br />
{ <br />
this->lstLogCommands->Items->Add(numLog + " Move forward");<br />
}<br />
else if(lstCommands->Items->Contains("Move Back"))<br />
{<br />
protocol_test(3);<br />
this->lstLogCommands->Items->Add(numLog + " Move Back");<br />
}<br />
else if(lstCommands->Items->Contains("Turn Right"))<br />
{<br />
protocol_test(4);<br />
this->lstLogCommands->Items->Add(numLog + " Turn Right");<br />
}<br />
else if(lstCommands->Items->Contains("Turn Left"))<br />
{<br />
protocol_test(5);<br />
this->lstLogCommands->Items->Add(numLog + " Turn Left");<br />
}<br />
<br />
numLog++;<br />
}<br />
else if(lstCommands->Text->Empty)<br />
{<br />
MessageBox::Show("No Commands selected","NoCommands",MessageBoxButtons::OKCancel,MessageBoxIcon::Exclamation);<br />
}<br />
}<br />
<br />
<br />
queue <int> q;
int i;<br />
while (lstCommands->Items ->Count >> i)<br />
q.push(lstCommands->Items->Count >> i);<br />
while (!q.empty())<br />
{<br />
cout << q.front() << " ";<br />
q.pop();<br />
</int>
|
|
|
|
|
gman2008 wrote: queue q; //queue int q - int brackets round it
Does that mean
queue<int> q;<br /> ? If so you really need to figure out how to post code before you try to get us to decipher it.
is this also a posting mistake?
gman2008 wrote: while (lstCommands->Items ->Count >> i)
because if you really have a right shift operator there then I guess you have no idea what you are doing. You need to go read some documentation on the '>>' operator[^]
led mike
|
|
|
|
|
It is hardly to find article or information on c++/cli .net asynchronous socket programming. I even cannot find a piece of it on internet. Any have it? Most i can find is in c#.
When i try convert and use this code as below:
m_mainSocket->BeginAccept(gcnew AsyncCallback(OnClientConnect), null);
AsynCallback^ pfnWorkerCallBack = gcnew AsyncCallback(OnDataReceived);
it show error like this:
error C3867: 'ServerChat::Form1::OnClientConnect': function call missing argument list; use '&ServerChat::Form1::OnClientConnect' to create a pointer to member (i try put full function prototype onClientConnect(IAsyncResult^ asyn) but still error)
error C3867: 'ServerChat::Form1::OnDataReceived': function call missing argument list; use '&ServerChat::Form1::OnDataReceived' to create a pointer to member
error C3350: 'System::AsyncCallback' : a delegate constructor expects 2 argument(s)
error C2065: 'null' : undeclared identifier
other errors just same with those listed. Help pls...
modified on Wednesday, March 12, 2008 11:09 PM
|
|
|
|
|
Member 4542272 wrote: it show error like this:
error C3867: 'ServerChat::Form1::OnClientConnect': function call missing argument list;
see if this helps[^]
led mike
|
|
|
|
|
Hey mike, i did find and read articles often but problem is i cannot find any relevant information or solution. Thx for your reply but this help ntg.
|
|
|
|
|
Also, those C# articles can be helpful - The .NET framework is the same - so is the code logic. The
code syntax is pretty similar too....
The first two errors are pretty obvious (or should be) from the error message. ..In C++ you don't get the address
of a member function that way anymore - you use the address-of operator, as shown in the error message.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hey Mark, the c# articles really useful to get me in c++/cli.
Can u simply show me how to use the address of operator for a function to solve that error? Thx.
|
|
|
|
|
did you try this?
m_mainSocket->BeginAccept(gcnew AsyncCallback(&ServerChat::Form1::OnClientConnect), null);
AsynCallback^ pfnWorkerCallBack = gcnew AsyncCallback(&ServerChat::Form1::OnDataReceived);
Don't be overcome by evil, but overcome evil with good
|
|
|
|
|
By doing AsyncCallback(&Form1::OnClientConnect) the problems is solved but it still prompt a strange errors like this:
error C3352: 'void ServerChat::Form1::OnClientConnect(System::IAsyncResult ^)' : the specified function does not match the delegate type 'void (System::IAsyncResult ^)'
It is exactly the same type why it still happen to be an error?
I try put static void OnClientConnect(IAsyncresult^ ar) as fuction can solve it somehow but it prompt out error after put static to the function like this:
error C2227: left of '->Text' must point to class/struct/union/generic type
by right richTextBoxRcvMsg->Text don't have any problem.
error C2227: left of '->EndAccept' must point to class/struct/union/generic type
by right m_Socket->EndAccept(ar) don't have problem.
Someone help pls..
modified on Monday, March 10, 2008 6:36 AM
|
|
|
|
|
Are these the new questions you referred to?
Can you provide some relevant code that causes the errors?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Yup.
The relevant code i already stated at the new question thread. I will make it more clear here.
I try solve error:
(1)error C3352: 'void ServerChat::Form1::OnClientConnect(System::IAsyncResult ^)' : the specified function does not match the delegate type 'void (System::IAsyncResult ^)'
by putting static to function void OnClientConnect(IAsyncResult^ ar) and relevant functions.
The error gone but doing this the statement within the function:
richTextBoxRcvMsg->Text = str;
come out error:
(2)error C2227: left of '->Text' must point to class/struct/union/generic type
I just don't understand that even richTextBoxRcvMsg is a form component within the class this still happen. Is that i need to make the ref class static also?
Instead of using static to the function, i just got a suggestion to try with this code:
Asynchronous(this, &Form1::OnClientConnect);
Later i back home only can try.
modified on Wednesday, March 12, 2008 11:11 PM
|
|
|
|