Articles of visual c ++

Eredita le interfacce che condividono il nome di un metodo

Ci sono due classi base con lo stesso nome di funzione. Voglio ereditarli entrambi e superare ogni metodo in modo diverso. Come posso farlo con dichiarazione e definizione separate (invece di definire nella definizione della class)? #include class Interface1{ public: virtual void Name() = 0; }; class Interface2 { public: virtual void Name() = 0; […]

Perché l’errore irreversibile “LNK1104: imansible aprire il file ‘C: \ Program.obj'” si verifica quando compilo un progetto C ++ in Visual Studio?

Ho creato un nuovo progetto C ++ in Visual Studio 2008. Nessun codice è stato ancora scritto; Sono state modificate solo le impostazioni del progetto. Quando compilo il progetto, ricevo il seguente errore fatale: errore fatale LNK1104: imansible aprire il file ‘C: \ Program.obj’

LPCSTR, LPCTSTR e LPTSTR

Qual è la differenza tra LPCSTR , LPCTSTR e LPTSTR ? Perché dobbiamo fare questo per convertire una stringa in una variabile di struttura LV / _ITEM pszText : LV_DISPINFO dispinfo; dispinfo.item.pszText = LPTSTR((LPCTSTR)string);

errore “simbolo esterno non risolto” durante il collegamento con OpenCV 3.0

Costruisco OpenCV 3.0 dalla fonte. E con il repository contrib per alcuni moduli extra. E ho configurato manualmente il mio progetto VS2013 per utilizzare i file lib generati. Il mio codice è semplice per ora: #include “opencv2\core\core.hpp” #include “opencv2\imgcodecs\imgcodecs.hpp” int _tmain(int argc, _TCHAR* argv[]) { cv::Mat image = cv::imread(“img.jpg”); return 0; } Ma mi ha […]

Perché esattamente ho bisogno di un upcast esplicito quando si implementa QueryInterface () in un object con più interfacce ()

Supponiamo che abbia una class che implementa due o più interfacce COM: class CMyClass : public IInterface1, public IInterface2 { }; Quasi tutti i documenti che ho visto suggeriscono che quando implemento QueryInterface () per IUnknown ho esplicitamente trasmesso questo puntatore a una delle interfacce: if( iid == __uuidof( IUnknown ) ) { *ppv = […]

Inizializzazione del valore e tipi di Non POD

Un’ora fa ho postato una risposta che, secondo me, era corretta. Tuttavia la mia risposta è stata downvoted da Martin B. Egli ha detto Sei solo fortunato e stai prendendo zeri perché la memoria in cui sono stato inserito è stata inizializzata a zero. Questo non è garantito dallo standard. Tuttavia dopo aver letto la […]

Differenza di prestazioni tra MSVC e GCC per codice di moltiplicazione della matrice altamente ottimizzato

Vedo una grande differenza di prestazioni tra codice compilato in MSVC (su Windows) e GCC (su Linux) per un sistema Ivy Bridge. Il codice fa una moltiplicazione densa della matrice. Sto ottenendo il 70% dei picchi di punta con GCC e solo il 50% con MSVC. Penso di aver isolato la differenza su come entrambi […]

Cosa significa l’operazione c = a +++ b?

Il seguente codice mi ha confuso int a=2,b=5,c; c=a+++b; printf(“%d,%d,%d”,a,b,c); Mi aspettavo che l’uscita fosse di 3,5,8, principalmente perché un ++ significa 2 +1 che equivale a 3, e 3 + 5 equivale a 8, quindi mi aspettavo 3,5,8. Si scopre che il risultato è 3,5,7. Qualcuno può spiegare perché questo è il caso?

Perché il confronto tra double e float porta a risultati inaspettati?

Possibile duplicato: strano risultato in comparazione di float con letterale float float f = 1.1; double d = 1.1; if(f == d) // returns false! Perché è così?

Espansione macro variadica MSVC ++

Quindi ho una macro che funziona bene in GCC, ma non nel compilatore C ++ di Microsoft. Spero che qualcuno possa sapere di una soluzione alternativa, o forse può spiegarmi perché si comporta in questo modo. Sono sicuro che questa macro non è esattamente “standard”, ma mi aiuterebbe davvero. Ecco un esempio funzionale della macro: […]