|
Thank you very much for your help! But when I try to follow your code, the error will be:
error C3867: 'CtestmmtimerDlg::TimeProc': function call missing argument list; use '&CtestmmtimerDlg::TimeProc' to create a pointer to member
|
|
|
|
|
I finished to run it ^^. Just move the CALLBACK function before click button and don't need to declare CALLBACK in header file. Thank you so much for your help ^^
|
|
|
|
|
|
Hi i have a stub that extract a resource. I want to run this resource directly from memory without write a file.
is it possible?
|
|
|
|
|
That depends if the resource is an exe or a dll. If it's an exe, there is no way, but if it's a dll, then check out this link:
Loading a Dll From Memory[^]
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Hello ,
I have a problem, I use LoadCursor () , but at runtime it shows me two error messages.
Here is the code:
term.h
void LoadCursor(double latitude,double longitude);
term.cpp
void Term::LoadCursor(double longitude,double latitude)
{
CursorLongitudeCurrent=longitude;
CursorLatitudeCurrent=latitude;
}
nem.h
double ReadLatitudeValue(void);
string ReadLongitude(void);
FormD.h
private: System::Void TMR_RS232Read_Tick(System::Object^ sender, System::EventArgs^ e) {
ptr_Term> LoadCursor(ptr_nem->ReadLatitudeValue(),ptr_nem->ReadLongitudeValue());
}
AND errors:
first:
error LNK2019: unresolved external symbol "public: void __thiscall term::LoadCursorW(double,double)" (?LoadCursorW@term@@$$FQAEXNN@Z) referenced in the function "private: void __clrcall FormD.cpp::Form_D::TMR_RS232Read_Tick(class System::Object ^,class System::EventArgs ^)" (?TMR_RS232Read_Tick@FormD@FormD.cpp@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
Second:
error LNK2028: unresolved token (0A0004AF) "public: void __thiscall term::LoadCursorW(double,double)" (?LoadCursorW@term@@$$FQAEXNN@Z) referenced in the function "private: void __clrcall FormD.cpp::FormD::TMR_RS232Read_Tick(class System::Object ^,class System::EventArgs ^)" (?TMR_RS232Read_Tick@FormD@FormD.cpp@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
if you have an idea
Thank you
modified 26-Mar-14 7:24am.
|
|
|
|
|
|
thank you very much Richard
|
|
|
|
|
I changed the name of the function and I have no error
but my cursor does not appear you have an idea please
modified 26-Mar-14 9:45am.
|
|
|
|
|
LoadCursor just loads the resource, it doesn't change the system cursor to that shape.
We'd need to see your code where you try to use the cursor.
For example, do you use it:
* In response to a WM_SETCURSOR message?
* In a direct call to SetCursor()?
* Passed to RegisterClass?
John
|
|
|
|
|
Since your code does not do anything (as far as we can see) it's difficult to answer that question. What is this function supposed to do?
|
|
|
|
|
Hello thank you for your help.I have 4 function.
Term.h
bool stateCursor; void CreateCursor(PaintEA e);
Term.cpp
void Term::CreateCursor(PaintEA e){
SolidBrush^ blackBrush = gcnew SolidBrush( Color::Black );
SolidBrush^ redBrush = gcnew SolidBrush( Color::Red );
if(CurPointCurrent!=CurPointPrevious) {
int deltaX=CurPointCurrent.X-CurPointPrevious.X;
int deltaY=CurPointCurrent.Y-CurPointPrevious.Y;
float distance= sqrt(pow((float)deltaX,2)+pow((float)deltaY,2));
float vectorX=deltaX/distance*polygoneLength;
float vectorY=deltaY/distance*polygoneLength;
Point point1 = Point(CurPointCurrent.X+vectorX,CurPointCurrent.Y+vectorY);
Point point2 = Point(CurPointCurrent.X+vectorX*-0.866-vectorY*0.5,CurPointCurrent.Y+vectorX*0.5+vectorY*-0.866);
Point point3 = CurPointCurrent;
Point point4 = Point(CurPointCurrent.X+vectorX*-0.866-vectorY*-0.5,CurPointCurrent.Y+vectorX*-0.5+vectorY*-0.866);
array<Point>^ curvePoints = {point1,point2,point3,point4};
if(stateCursor==false) {
e->Graphics->FillPolygon( blackBrush , curvePoints );
stateCursor=true;
}
else {
e->Graphics->FillPolygon( redBrush, curvePoints );
stateCursor=false;
}
}
else{
if(stateCursor==false) {
e->Graphics->FillEllipse( blackBrush , CurPointCurrent.X-circleRadius,CurPointCurrent.Y-circleRadius,circleRadius*2,circleRadius*2);
stateCursor=true;
}
else {
e->Graphics->FillEllipse( redBrush , CurPointCurrent.X-circleRadius,CurPointCurrent.Y-circleRadius,circleRadius*2,circleRadius*2 );
stateCursor=false;
}
}
}
FormD.h
private: System::Void picB_MainMap_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
if(!first_time) {
ptr_Term->CreateCursor(e);
}
}
private: System::Void picB_SubZone_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
if(!first_time) {
ptr_Term->CreateCursor(e);
}
}
Thanks
|
|
|
|
|
Sorry, I don't understand what you are trying to illustrate.
|
|
|
|
|
sorry my english is very bad. I tried to create a cursor. I have a function that nominated
CreateCursor in Term.h and Term.cpp and I call this function in FormD.h but not display the cursor
|
|
|
|
|
|
thank you very much for your help Richard. I found the error, and my program works.
error is not in the code that I've written here
modified 27-Mar-14 6:53am.
|
|
|
|
|
Please help! Even I am experienced in C++ and C#, I am new to C++/CLI.
I have written a simple C# program using WinSCP library. I know how to do it in C# as there is already an example (http://winscp.net/eng/docs/library#csharp[^])
I try to convert but I do not get any success.
#using "WinSCPnet.dll"
using namespace System;
int main(array<System::String ^> ^args)
{
try
{
Console::WriteLine("Staring...");
WinSCP::SessionOptons ^ sftpSessionOptions = gcnew
WinSCP::SessionOptions::SessionOptions (
WinSCP::SessionOptions::Protocol =
WinSCP::Protocol::Sftp,
...
);
...
}
But I get this error:
Error c2061: syntax error: identifer '{ctor}'
why? Please help in the translation.
Yes I have made sure it compiles with '/clr' option.
|
|
|
|
|
|
Richard,
Thanks for your help. I get it. The thing is when I mouse over the new SessionOptions in this line in the C# program,
SessionOptions sessionOptions = new SessionOptions {
Protocol = Protocol.Sftp,
I see SessionOptions.SessionOptions(). With that in mind, when I do the C++ program, I convert that line to:
WinSCP::SessionOptions ^ sftpOptions = gcnew
WinSCP::SessionOptions::SessionOptions()
sftpOptions->Protocol = WinSCP::Protocol::Sftp;
As you can see, that (WinSCP::SessionOptions::SessionOptions()) is not a valid call. I change that to gcnew WinSCP::SessionOptions() and it works! Thanks.
|
|
|
|
|
Hello,..
Hey i dont know how u willtake my suggestion but , i have an idea for u
Use C# to C++ convertor.. it may help you..
int Example::Main()
{
try
{
SessionOptions ^sessionOptions = gcnew SessionOptions {Protocol = Protocol::Sftp, HostName = "example.com", UserName = "user", Password = "mypassword", SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"};
using (Session session = new Session())
Session ^session = gcnew Session();
try
{
session->Open(sessionOptions);
TransferOptions ^transferOptions = gcnew TransferOptions();
transferOptions->TransferMode = TransferMode::Binary;
TransferOperationResult ^transferResult;
transferResult = session->PutFiles("d:\\toupload\\*", "/home/user/", false, transferOptions);
transferResult->Check();
for each (TransferEventArgs ^transfer in transferResult->Transfers)
{
Console::WriteLine("Upload of {0} succeeded", transfer->FileName);
}
}
finally
{
delete session;
}
return 0;
}
catch (Exception ^e)
{
Console::WriteLine("Error: {0}", e);
return 1;
}
This ur sample C# code to C++/CLI.
|
|
|
|
|
I try that converter, but when I compile, there are problems. Thanks for the suggestion.
|
|
|
|
|
Hi, i am working on a project using C and C++.
But now i have to use lil bit of C# code in it.So i made a sample application , converted all the c# code to managed C++/CLI.I changed the properties of sample app to Clr support.It worked fine.
But in my current project, i have some pure c classes also. So when i was changing the property of my project to CLR , it gave me error of xyz.c file cannot convert into \clr.
I dont know wat to do?i cannot convert xyz.c class into xyz.cpp
Can anyone suggest what should i do... Is it possible that i mange to use mannaged c++ also and i still donot have to convert the whole project into CLR.
|
|
|
|
|
You could convert the C code into a DLL which you can then access via P/Invoke from the CLR portion. Unfortunately you cannot convert pure C code to CLR.
|
|
|
|
|
Hi,Thanks for the reply.
I managed to do it by adding a new CLR class and putting all my C Sharp code to it.Automaticaly VS
ask me that wether i would like to convert by my code to CLR.Then it converts all my code to CLR without giving any compile error .
Regards
Shubh
|
|
|
|
|
Hi Richard .. I posted my problem i tried diffrent ways to solve it..like i told you that i found a temporary way to resolve my problem.
But that is not proper solution.
You know what that now i am thinking to use my CLI/C++ code as dll .To call the function in that dll, do i need a wrapper class in my unamanged c++ code .If yes then can you give me an idea or post to implment it.I havenot used wrapper classes before.
Is there any other way to call dll functions.Need your guidance.Thanks in advance.
|
|
|
|