Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML + C++/CLI] Błędy linkera.

Ostatnio zmodyfikowano 2011-10-05 23:30
Autor Wiadomość
akwes
Temat założony przez niniejszego użytkownika
[SFML + C++/CLI] Błędy linkera.
» 2011-10-05 18:03:57
Witam!

Windows 7 64bit,
Visual C++ Express 2008,
SFML 1.6 dla C++ i SFML.DOT,
File->New->Project, CLR->Windows Forms Application,

Kod:
C/C++
private: System::Void Form1_Load( System::Object ^ sender, System::EventArgs ^ e )
{
    Form2 = gcnew Tree();
    Form2->Show();
    sf::RenderWindow okno( sf::VideoMode( 800, 600, 32 ), "Wizzard" );
}

Kompilator:

1>F:\Visual Proj\WizzMapEditor\Debug\MapEditor.exe : fatal error LNK1120: 6 unresolved externals
1>MapEditor - 7 error(s), 394 warning(s)

Warrnings są pokroju tego:

1>F:\Programy\!Biblioteki\SFML-1.6\include\SFML/Graphics/String.hpp(186) : warning C4272: 'sf::String::~String' : is marked __declspec(dllimport); must specify native calling convention when importing a function.
Errors są pokroju tego:

1>MapEditor.obj : error LNK2028: unresolved token (0A00001B) "public: __clrcall sf::RenderWindow::RenderWindow(class sf::VideoMode,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned long,struct sf::WindowSettings const &)" (??0RenderWindow@sf@@$$FQAM@VVideoMode@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KABUWindowSettings@1@@Z) referenced in function "private: void __clrcall WizzMapEditor::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@WizzMapEditor@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)

Problem:
SFML działa normalnie w Project->General->Empty Project, nie ma błędów linkera, wszystko ładnie się kompiluje. Chciałem przy tworzeniu edytora map skorzystać z dobrodziejstw RAD oferowanego przez Visual`a. W wersji SFML.DOT są tylko *.dll, brak jest includów i libów. Powinno dać się korzystać z SFML C++ ale... no właśnie, linker odmawia posłuszeństwa. Ktoś wie w czym może być problem? Ktoś wie gdzie problemu szukać?
P-41762
akwes
Temat założony przez niniejszego użytkownika
» 2011-10-05 23:30:55
Hm... Dobra kolejny temat widmo :P

Już mi działa... Lista kroków.

1. Otworzenie pustego projektu C++,
2. Zwykłe ustawienie SFML dla C++,
3. Dodanie okna przez PPM -> Add item... -> New Item, UI->Windows Form,
4. W opcjach projektu dodać wsparcie CLI
5. ...
6. Profit!

Kod do pliku głównego, aby aplikacja w miarę działała sensownie.
C/C++
#include <SFML/Graphics.hpp> // dla SFML
#include <iostream>

#include "fakwindow.h"

[ 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
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Okno?" ); // SFML
    Application::Run( gcnew fucktest2::fakwindow() );
    return 0;
}

Co nie zmienia faktu że jak wejdę przez "File->New->Project, CLR->Windows Forms Application" to jest 300 warrningów i błędy linkera.
P-41773
« 1 »
  Strona 1 z 1