C++/CLIを使用しているプロジェクトからplain-old-C++で書かれたクラスにアクセスしているかなり複雑なプロジェクトに取り組んでいます。これは、(非CLI)C++姉妹プロジェクトと同じ機能を多く使用するWindowsフォームGUIプロジェクトです。私は両方の環境で動作するように調整しようとしている私のクラスの一つでC++/CLIプロジェクトでGetAsyncKeyState()を呼び出す際にエラーが発生しました
、私はこの機能をポーリングキー押下だ:
inline bool IsKeyDown(unsigned char ch) const {
return (GetAsyncKeyState(ch) & (1u << 15)) != 0;
}
私は両方の未解決のトークンと未解決の外部シンボルエラーを取得していますon "extern "C" short __stdcall GetAsyncKeyState(int)" ([email protected]@[email protected]) referenced in function "public: bool __clrcall Engine::InputManager::IsKeyDown(unsigned char)const " ([email protected]@[email protected]@[email protected])
明らかに、この問題はGetAsyncKeyState()
に関連していますが、CLIフレンドリーな実装では何が違う必要があるかわかりません。誰でも私にこれを修正する方法を教えてもらえますか?この機能は、CLI以外の環境でも正常に動作します(数か月あります)。私はこのCLIのものには非常に新しいので、どんな助けも素晴らしいだろうし、あまりにも具体的なヘルプはない。
私はVisual Studio 2010を使用しており、/clr
パラメータ(:pure
または:safe
ではない)でコンパイルしています。
+1!それはまさに私の問題でした。ありがとう! – chaosTechnician