2012-04-11 33 views
0

我想改变图像的exif数据。为此,我使用Exiv2.exe。现在,我想从我的方案,这是写在VC++ 08.关于修改图像的GPS数据消防指挥,exive命令如何从vC++开始下面的命令?

exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" D:\test\image.jpg

我exiv2.exe放到system32目录。这个命令在命令提示符下正常工作。例如,

C:\Users\Me>exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" D:\test\image.jpg 

现在我该如何从我的C++程序中激发这个相同的命令?

在此先感谢...

回答

0

终于得偿所愿,

const char *change_latitude = "exiv2 -M\"set Exif.GPSInfo.GPSLatitude 14/1 15/1 13/1\" D:\\test\\image.jpg"; 
system(change_latitude); 

在这个例子中假设是:在system32文件夹下exiv2.exe。

谢谢...

+0

真正的假设是'exiv2.exe'位于'%PATH%'中,'system32'不是用于存储随机可执行文件的正确目录。 – MSalters 2012-04-12 10:58:44

0

看一看的文档ShellExecute()CreateProcess() - 无论这些应该要会得到你。

+0

我试过的ShellExecute(NULL,_T( “开”),_T( “cmd”),_T( “/ C exiv2 -M \” 设置Exif.GPSInfo.GPSLatitude 41/1 41/1 41/1 \“”“D:\ test \ image.jpg”),_T(“C:\”),SW_SHOW);但不工作。 – 2012-04-11 17:34:11

+0

ShellExecuteW(NULL,NULL,L“notepad.exe”,L“c:\\ temp \\ foo.txt”,NULL,SW_SHOWNORMAL)适用于我。您应该能够用您的参数替换我的参数 – Bukes 2012-04-11 22:51:34