|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
[Managed c++]
tool vs NET 2005.
E' cambiata la sintassi del managed c++ dal vs NET 2003 al vs NET 2005. Sono migrato al vs NET 2005 e i vecchi progetti naturalmente non vanno sul 2005. Insomma la m$ non sà proprio come fare per ingarbugliare la vita ai programmatori...!! Cmq... A me serve sapere come l'HINSTANCE dunque: nella vecchia sintassi era semplice perchè hinstance già di default: ecco il code: Codice HTML:
#include "stdafx.h"
#include "Form1.h"
#include <windows.h>
using namespace Okay;
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA;
// Application::Run(new Form1());
Application::Run(new Form1(hInstance));//prendo hinstance ok
return 0;
}
Codice HTML:
// okay.cpp : main project file.
#include "stdafx.h"
#include "Form1.h"
using namespace okay;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}
Application::Run(gcnew Form1(hInstance)); qualcuno sà come fare?? ho visto nei metodi ma nulla in + come documentazione alla nuova sintassi c'è veramente poco su msdn ho trovato qualcosa ma è ancora tutto in lavorazione per la nuova sintassi del managed c++. |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
l'HINSTANCE passato alla WinMain è (era) un anacronismo, è un valore inutile: corriponde sempre al base address dell'eseguibile (0x00400000 nel 99% dei casi). so che il windowing system se ne frega, quindi hai due strade:
1) gli passi NULL e vedi se funziona lo stesso, cosa probabile 2) gli passi il valore ritornato da GetModuleHandle(NULL) castato ad HINSTANCE |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Quote:
ciao ho risolto così: // Init oki.lib Inizializzazione(NULL, (HINSTANCE)this->Handle.ToPointer()); mancano, non dico completamente...mhà!, le sintassi e quindi mi sembro un pazzo alle volte digito caratteri a caso cercando di trovare il giusto modo. Stò migrando l'editor in managed c++ dove posso usare il property grid un controllo che mi piace proprio. viso che ci sono continuo quì: Per le messagebox stesso problema non trovo nulla ne su google ne l'msdn online. questo è il code che credo sia giusto in quanto compila: Codice HTML:
if(MessageBox::Show("Quit?", "Session", MessageBoxButtons::YesNo, MessageBoxIcon::Question)== DialogResult::get())
Close();
Pensavo di mettere: DialogResult: dopo DialogResult:: ci sono 2 metodi get() che funziona come sopra e set() che mi dà invece errore. ho fatto pure int result=Messagebox... e poi if(result) ma mi dà naturalmente errore. ne sai nulla? ciao |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
risolto così:
Codice HTML:
if(MessageBox::Show("You are sure to quit?", "Session", MessageBoxButtons::YesNo, MessageBoxIcon::Question)== Windows::Forms::DialogResult::Yes )
Close();
http://www.functionx.com/vcnet/index.htm Solo che la sintassi è cambiata...e ho detto tutto! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:10.



















