Cześć, mam jakieś dziwne ostrzeżenia, których chciałbym się pozbyć.
Tak, jak w temacie. Oczywiście sprawdzałem w necie, czytałem, próbowałem itd. Ale wg mnie wszystko jest tu ok.
Sprawa wygląda tak, że tworzę sobie liba. W tym samym solution, tworzę nowy projekt - exe, który używa tego liba.
Całość wygląda mniej więcej tak:
========= lib ==============
class DLL_API NControl : public NObject
{
public:
void SetLeft(const int left);
}
Makro DLL_API jest zdefiniowane tak:
#ifdef DLL_EXPORT
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
W ustawieniach projektu lib'a mam oczywiście zdefiniowane DLL_EXPORT
Następnie w exe w funkcji WinMain używam metody SetLeft:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdLine, int cmdShow)
{
MainFormPtr mainForm;
mainForm.reset(new MainForm);
mainForm->Create();
mainForm->Show();
mainForm->SetLeft(100);
//...
}
MainFormPtr to jest smart pointer do klasy dziedziczącej po NControl.
Dlaczego dostaję takie ostrzeżenia?