1. C语言,怎样实现获取调用其他程序的输入输出
我选择用LCC-win32为编译器。
#include
#include
#include
#include
int main(int argc,char *argv[])
{
SECURITY_ATTRIBUTES sa;
sa.nLength=sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor=NULL;
sa.bInheritHandle=TRUE;
HANDLE outHandle;
outHandle = CreateFile("aa.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,&sa,CREATE_ALWAYS,0,NULL);
PROCESS_INFORMATION processInfo;
STARTUPINFO startUpInfo;
memset(&startUpInfo, 0, sizeof(STARTUPINFO));
memset(&processInfo ,0, sizeof(PROCESS_INFORMATION));
startUpInfo.cb = sizeof(STARTUPINFO);
startUpInfo.dwFlags = STARTF_USESTDHANDLES;
startUpInfo.wShowWindow=SW_SHOWNORMAL;
startUpInfo.hStdOutput = outHandle;
if(!CreateProcess("hello.exe",NULL, NULL, NULL, FALSE,
CREATE_NEW_CONSOLE, NULL, NULL,
&startUpInfo, &processInfo)){
CloseHandle(outHandle);
printf("open hello.exe error");
}else{
DWORD filesize=1000;
char * buffer = malloc(filesize + 1);
memset(buffer, 0, filesize+1);
DWORD readsize;
ReadFile(outHandle,buffer,filesize,&readsize,NULL);
buffer[filesize]=0;
printf("%s\n",buffer);
free(buffer);
WaitForSingleObject(processInfo.hProcess,INFINITE);
printf("open hello.exe ok");
CloseHandle(outHandle);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
return 0;
}
2. VB如何获取C程序的运行结果
最完美的方法是用消息通知,即C语言程序在结束前把运行结果通过消息通知方法向VB程序窗口发送一个消息,VB程序通过事件触发进行判断。
最简单的方法是用文件或注册表交换数据,这个楼上的已经说了。
3. C语言如何调用别的程序?
可以啊,只要放到程序李就得,但是不能是编译语言
4. C语言中如何将数据写到文件中?如何从文件中读出数据?通过一个完整的程序举例说明
#include
int main()
{
char read[100];
FILE *fpcome;
if( (fpcome= fopen("1.txt", "r+"))==NULL )
{
puts("文件打开出错!");
return;
}
fputs("abcdefghijkflmnopqrstuvwxyz", fpcome);//将abcdefghijkflmnopqrstuvwxyz写到文件
rewind(fpcome);//移动文件位置指针到一个文件的开始处
fgets(read, 27, fpcome);//读取文件到read
fclose(fpcome);//关闭文件
printf("%s\n", read);//输出
}
5. 怎么用C语言或是VB处理数据得到系统的动态特性
VF学了主要是掌握数据库原理 几乎没有人用VF来做系统 ,再说全国计算机等级考试已经去掉了VF,已无意义.
VB主要是用于桌面应用程序开发和数据库的,是一个比较的面向对象的程序语言.
C是很有用的,尤其是在算法上很强, 程序榜排名第二
JAVA现在是程序榜排名第一,使用起来方便,做网络程序比较好
建议:C或JAVA.
但是对于你个人而言,你学习C语言比较好,和你所学的数控维修密切相关.
祝:学习顺利啊!!!
6. 谁会在vb中调用c语言的程序,比如用c写了个加法程序a+b,如何从vb中获取a,b的值给c程序,让
一般采用C做DLL,vb调用此DLL
VB里面对普通DLL函数的调用方法如下:首先进行声明:
这个是有返回值的函数的声明方法:
Private Declare Function HelloWorld Lib "E:\xxx.dll" (ByVal InLng As Long) As Long
这个是没有返回值的函数的声明方法:
Private Declare Sub HelloWorld Lib "E:\xxx.dll" (ByVal InLng As Long)
备注:如果dll跟vb程序不在一个目录,就要写全路径,否则直接写上dll文件名就行了。
之后就可以像普通VB函数(Function)或者过程(Sub)一样的调用了,例如:
rtnCode = HelloWorld(123)
或者
Call HelloWorld(123)
另外,C里面的函数要加加上_stdcall,例如:
DLLIMPORT _stdcall long HelloWorld (long InLng,char *InStr)
7. C语言 调用另一个程序
调用其他程序有两种方式,一个是直接调用其他模块中的函数,另外一个是用系统调用的方式调用已经编译连接好的可执行文件。
第一种方法的话,无论你用什么工具都是在你的程序里面添加你要调用函数的函数声明,然后再编译之后把两个obj文件连接起来。或者是把你要调用函数作到一个lib文件里面,然后连接到这个库。
第二种方式的话,就是把你要调用的函数(main函数)编译连接成一个独立的可执行文件,然后在你自己的程序里面指定目录结构程序名用系统调用执行。
VC的话不太适合初学者理解c语言,不过楼主如果是仅仅完成这个程序的功能的话,第一种方法中的编译和连接工作VB都会给你做,你只需要把代码加入工程中,然后在你的函数前声明调用的函数就行了。
--------不华丽的分割线-------
我明白了,你不理解的是我说的编译啊连接这些术语。这样吧,你新建一个VC工程,把那个c加进去,然后执行一下。接着去你建的那个工程的文件夹下找一个和你的工程名一样的后缀是.exe的文件就能用了。前提是你要用的那个.c文件里面有main方法。
8. 如何用VB获得第三方软件中的数据?50分悬赏等你拿。
第一种方法比较简单一点
1、findwindow 获取程序的窗口句柄
2、findwindowex 找到该文本框的句柄
3、GetWindowText或,sendmessage发送WM_GETTEXT消息获取内容
4、根据获取的文本类型(unicode/ansi)做最后的转换、清除空白处理