Text_Box.cpp的代码是:
#include <SFML/Graphics.hpp>
int main1() {
sf::RenderWindow window(sf::VideoMode(800, 600), "Window",
sf::Style::Titlebar | sf::Style::Close);
sf::Font arial;
arial.loadFromFile("arial.ttf");
sf::Text t;
t.setFillColor(sf::Color::White);
t.setFont(arial);
std::string s = "This is text that you type: ";
t.setString(s);
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed) {
window.close();
}
if (event.type == sf::Event::TextEntered) {
if (event.text.unicode < 128) {
s += static_cast<char>(event.text.unicode);
}
else {
// Time to consider sf::String or some other unicode-capable string
}
}
}
t.setString(s);
window.clear(sf::Color::Black);
window.draw(t);
window.display();
}
return 0;
}
我复制了上面的代码,通过更改其中的命令来学习。我将它包含在我的c主文件中,也就是main.c中,并在main函数的开头使用它。我的主要.c代码是:
#include <stdio.h>
#include "Text_Box.cpp"
int main() {
main1();
return 0;
}
但它给出了几个错误,比如:
Severity Code Description Project File Line Suppression State
Error C4233 nonstandard extension used: '__is_final' keyword only supported in C++, not C Project1 C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.29.30133includetype_traits 543
Severity Code Description Project File Line Suppression State
Error C4233 nonstandard extension used: '__is_trivially_constructible' keyword only supported in C++, not C Project1 C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.29.30133includetype_traits 741
等等。我正在使用visual studio 2019。如何修复?我做错什么了吗?我有一个疑问,当我使用visual studio 2019时,我需要自己编译SFML吗?
编辑:我尝试在没有main.c文件的情况下,将main1重命名为main,在添加其他依赖项后,它在执行时出现错误:未找到CCD_ 1,未找到CCD_ 2,未找到sfml-system-d-2.dll
。它还说重新安装可能会解决这个问题。所以我需要编译sfml作为sfml的网站提到这一点吗?
编译器需要指定(在项目设置中(
/Zc:__cplusplus
千万不要这样做。删除main.c并将main1
重命名为main
。
main.c
#include <stdio.h>
#include "Text_Box.cpp"
int main() {
main1();
return 0;
}