我有这个程序:
#include <iostream>
#include <string>
using namespace std;
int main() {
string inputfile = "input.pdf";
string outputfile = "output.tiff";
cout << "paste path of pdf to convert" << endl;
getline(cin, inputfile);
cout << "type the path of the output file with the correct extension ie png jpeg or tif" << endl;
getline(cin, outputfile);
string command = "gm.exe montage -tile 1x10000 -geometry 85% -density 150x150 " + inputfile + " -quality 100 " + outputfile;
system(command.c_str());
return 0;
}
正如你可以看到它使用std库。我没有使用安装项目,因为它感觉不必要,因为A可以很容易地复制和粘贴应用程序和dll。在我在副本中包含dll之前,它给了我以下错误消息:
MSVCP140d.dll丢失,程序无法启动。
我从我的计算机上获得了DLL的副本,这似乎解决了这个问题,但是当我在非开发计算机上运行它时它给了我:
ucrtbassed.dll缺失,程序无法启动。
我从互联网上下载了丢失的DLL,但是现在当我启动程序时,我收到了这个错误:
应用程序无法正确启动(0xc0000007b)。单击“确定”关闭应用程序。
似乎当计算机安装了Visual Studio时,代码运行正常;但是,当他们没有安装Visual Studio时,它不会运行。我已经安装了VCredist.exe并且发生了同样的问题。
关于虾
答案 0 :(得分:1)
Release
版本。不是Debug
。 d
名称末尾的符号.dll
表示您已构建调试版本。right clink on Project -> Properties (-> select Release configuration and All Platforms at top of the window) -> C/C++ -> Code Generation -> set "Runtime Library" to "Multi-threaded (/MT)"
不要忘记转义传递给其他应用程序命令行的参数。我修改了一行代码。请参阅文件名周围的其他引号。
string command = (string)"gm.exe montage -tile 1x10000 -geometry 85% -density 150x150 " +
"\"" + inputfile + "\" -quality 100 \"" + outputfile + "\"";