在Windows中执行system()时找不到入口点

Entry Point Not Found when executing system() in Windows

本文关键字:找不到 入口 Windows 执行 system      更新时间:2023-10-16

所以,我有两个应用程序,一个用C++编译,另一个用C编译。主应用程序C无法在Windows中使用system()函数启动另一个应用程序。我收到一个错误消息框,上面写着"找不到入口点"。问题是,当从命令提示符运行时,另一个应用程序运行得很好。有人遇到过类似的事情吗?

编辑:-适用于提问者:)嗯,这个应用程序在另一个目录中,它将bmp转换为png,它有两个参数。。首先,我创建了一个像这样的新字符串

sprintf(converterExec, "%s\converter.exe "%s" "%s"", newDir, bmpLoc, pngLoc);

newDir=程序的目录bmpLoc,pngLoc=两个位置,源文件和目标文件

当我调试程序时,converterExec包含程序的绝对路径和两个参数,因此没有错误。

然后我叫这个:

system(converterExec);

我想,converter.exe中存在一些问题(也许,应该使用静态链接进行编译)。

尝试其他程序,例如:

#include <stdio.h> 
#include <windows.h> 
int main(void) 
{ 
    char commandLine[256];
    char progName[] = "ping";
    char hostName[] = "localhost";
    char keys[] = "-n 2";
    sprintf(commandLine, "%s "%s" %s", progName, hostName, keys);
    printf("%sn", commandLine);
    system(commandLine);
} 

如果有效,请再次尝试您的命令,但在开始时添加cmd /c

 sprintf(converterExec, "cmd /c %s\converter.exe "%s" "%s"", newDir, bmpLoc, pngLoc);

此外,请检查为converterExec分配的内存是否足以存储末尾有额外''的所有字符。