由于您使用的是GLFW,为什么不在GLFW中使用处理拖放的本机方法?
如果您希望接收窗口中放置的文件和/或目录的路径,请设置文件删除回调.
glfwSetDropCallback(window, drop_callback);回调函数接收编码为UTF-8的路径数组.
Run Code Online (Sandbox Code Playgroud)void drop_callback(GLFWwindow* window, int count, const char** paths) { int i; for (i = 0; i < count; i++) handle_dropped_file(paths[i]); }路径数组及其字符串仅在文件删除回调返回之前有效,因为它们可能是专门为该事件生成的.如果要保留路径,则需要制作数组的深层副本.