我编写的两个exe程序之间如何传递字符串参数?

oldmonsterman 2002-01-09 04:45:00
我编写的两个exe程序A和B,A运行时要调用B,但需要传递字符串参数给B,请问如何做?
请各位高人快点回复,谢谢!!!
gwmboss@263.net
...全文
264 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldmonsterman 2002-01-18
  • 打赏
  • 举报
回复
结账
oldmonsterman 2002-01-16
  • 打赏
  • 举报
回复
看来不是很容易,a和b都不复合com规范,看来没戏了
nanaki 2002-01-16
  • 打赏
  • 举报
回复
如果 B 是符合 COM 规范的程序,那就好办了,你自己定义 B 的接口,然后 A 把 B 作为 一个组件调用,如果 B 不符合 COM 规范,那你就要自己定义两个程序之间的通讯协议,这样做需要很多技巧。
jucee 2002-01-16
  • 打赏
  • 举报
回复
可以用管道来实现
sam1111 2002-01-16
  • 打赏
  • 举报
回复
命令行参数
xuxia 2002-01-16
  • 打赏
  • 举报
回复
自定义消息。
pinel 2002-01-13
  • 打赏
  • 举报
回复
进程间通信问题
oldmonsterman 2002-01-13
  • 打赏
  • 举报
回复
内存映射文件我不太熟悉,能否详细的讲一下怎样进行,谢谢!!
TyraelTiger 2002-01-13
  • 打赏
  • 举报
回复
动态数据交换技术DDE
com_dcom 2002-01-13
  • 打赏
  • 举报
回复
A,B两个程序都是你设计的把,在B中用SHELL的形式,A发送消息,B接收。
这个很简单,我做过。
2ndboy 2002-01-13
  • 打赏
  • 举报
回复
WM_COPYDATA消息
bu_zheng 2002-01-11
  • 打赏
  • 举报
回复
如果两个程序都是你编的,那你就用内存映射文件好了。
oldmonsterman 2002-01-11
  • 打赏
  • 举报
回复
文件中不太好吧,这些参数不想给人看
qiyao 2002-01-10
  • 打赏
  • 举报
回复
1,你可共用一个数据交换文件*.ini处理!!
xiaoc 2002-01-09
  • 打赏
  • 举报
回复
发消息
dqm73wjl 2002-01-09
  • 打赏
  • 举报
回复
一般来说,这样的问题可以有内存映射文件来解决!
eion 2002-01-09
  • 打赏
  • 举报
回复
如果你用的是C或者是C++,你可以用命令行参数,
int main(int argc,char *argv[].char* env)
参数个数在argc中,参数在argv中
看看这段代码:
int void main(int argc,char* argv[])
{
int i=0;
for(i=0;i<argc;i++) printf("%s\n",argv[i]);
}
jackjack 2002-01-09
  • 打赏
  • 举报
回复
不好意思看错论坛啦!!!
不过这段代码在VB里确实可以的!!!
jackjack 2002-01-09
  • 打赏
  • 举报
回复
'进程A:窗体Name:Form1,Caption:Form1
'加两个CommandButton、两个TextBox
'在窗体里
Private Sub Command1_Click()
Dim hWndRecv As Long

Clipboard.SetText Text1.Text

hWndRecv = FindWindow(vbNullString, "Form2")

SendMessage hWndRecv, WM_USER + 1001, 0, ByVal 0&
End Sub

Private Sub Command2_Click()
Dim hWndRecv As Long

Clipboard.SetText Text2.Text

hWndRecv = FindWindow(vbNullString, "Form2")

SendMessage hWndRecv, WM_USER + 1002, 0, ByVal 0&
End Sub
'在一般模块里
Public Const WM_USER = &H400
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

'进程B:窗体Name:Form1,Caption:Form2
'加两个TextBox

'在窗体里
Private Sub Form_Load()
prevWndProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
Call SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call SetWindowLong(Me.hwnd, GWL_WNDPROC, prevWndProc)
End Sub

'在一般模块里
Public Const GWL_WNDPROC = (-4)
Public Const WM_USER = &H400

Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public prevWndProc As Long

Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_USER + 1001 Then
Form1.Text1.Text = Clipboard.GetText
ElseIf Msg = WM_USER + 1002 Then
Form1.Text2.Text = Clipboard.GetText
Else
WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
End If
End Function
cdone 2002-01-09
  • 打赏
  • 举报
回复
还可以通过 某个端口来通信
加载更多回复(4)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧