mfc 如何连接SAP系统

MFC如何连接SAP系统,网上看了都是VB\C#的,有没有大神知道怎么在MFC中使用SAP LOGON CONTROL控件怎么去连接SAP

img


参考步骤:

1.首先,下载并安装SAP ActiveX控件(SAP Logon Control),可以从SAP Support Portalhttp://service.sap.com/download)里面下载安装。 
2.打开MFC应用程序,在设计界面把SAP Logon Controls空间拖到窗体上。 
3.编写程序代码: 
  (1)定义并声明SAP Logon Control控件的变量; 
  (2)登录到SAP系统; 
  (3)提取SAP 的所有会话;
  (4)开始一个会话;
  (5)设定登录参数;
  (6)处理控件的各种事件;
  (7)离开会话;
4.编译,编译通过后运行MFC程序,用SAP Logon Control控件使MFC程序连接SAP系统。

大哥,有没有demo,看懂你说的,但是不会实现

大哥,有没有demo,看懂你说的,但是不会实现

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/248892
  • 这篇博客也不错, 你可以看下SAP 后台表查询方法及消息报错定位方法
  • 除此之外, 这篇博客: MFC基础入门中的 消息映射机制 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    消息映射是一个将消息和成员函数相互关联的表。比如,框架窗口接收到一个鼠标左击消息,MFC将搜索该窗口的消息映射,如果存在一个处理WM_LBUTTONDOWN消息的处理程序,然后就调用OnLButtonDown

    将消息映射添加到一个类中所做的全部工作:

    1. 所操作类中,声明消息映射宏
    2. 通过放置标识消息的宏来执行消息映射,相应的类将在对BEGIN_MESSAGE_MAPEND_MESSAGE_MAP的调用之间处理消息
    3. 对应消息处理函数分别在类中声明,类外定义

    mfc.h

    #include <afxwin.h> //mfc头文件
    
    class MyApp: public CWinApp // CWinApp应用程序类
    {
    public:
    	virtual BOOL InitInstance();
    
    };
    
    class MyFrame : public CFrameWnd
    {
    public:
    	MyFrame();
    
    	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    	afx_msg void OnChar(UINT, UINT, UINT);
    	afx_msg void OnPaint();
    
    	// 声明宏 提供消息映射机制
    	DECLARE_MESSAGE_MAP()
    };
    

    mfc.cpp

    #include "mfc.h"
    
    MyApp app;                            // 有且只有一个全局的应用程序类对象
    
    BOOL MyApp::InitInstance()            // 程序入口地址
    {
    	MyFrame* frame = new MyFrame;     // 1.创建框架类对象
    
    	frame->ShowWindow(SW_SHOWNORMAL); // 2.显示窗口
    	frame->UpdateWindow();            // 3.更新窗口
    
    	m_pMainWnd = frame;               // 4.保存框架类对象指针(保存指向应用程序的主窗口的指针)
    
    	return TRUE;                      // 初始化正常返回TRUE
    }
    
    BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd) // 开始
    
    	ON_WM_LBUTTONDOWN()
    	ON_WM_CHAR()
    	ON_WM_PAINT()
    
    END_MESSAGE_MAP()                     // 结束
    
    
    MyFrame::MyFrame()
    {
    	Create(NULL, TEXT("mfc"));
    }
    
    void MyFrame::OnLButtonDown(UINT, CPoint point) {
    
    	//TCHAR buf[1024];
    	//wsprintf(buf, TEXT("x = %d, y = %d"), point.x, point.y);
    
    	//MessageBox(buf);
    
    	// MFC中使用字符串 CStirng
    	CString str;
    	str.Format(TEXT("x = %d, y = %d"), point.x, point.y);
    
    	MessageBox(str);
    }
    
    void MyFrame::OnChar(UINT key, UINT, UINT) {
    
    	CString str;
    	str.Format(TEXT("按下了%c键"), key);
    
    	MessageBox(str);
    }
    
    void MyFrame::OnPaint() {
    
    	CPaintDC dc(this);
    
    	dc.TextOutW(100, 100, CString("NJ"));
    	// 画椭圆
    	dc.Ellipse(100, 100, 150, 150);
    }
    

    运行结果

    在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^