易语言写程序代码里“Afx:14c0000:8:10011:0:0”这个代表着什么意思,谁知道怎么如下面代码所示。。。

易语言写程序代码里“Afx:14c0000:8:10011:0:0”这个代表着什么意思,谁知道怎么如下面代码所示。。。,第1张

窗口句柄 = 取窗体句柄 (“Afx:14c0000:8:10011:0:0”, “QQ游戏”)''这里是先获取QQ游戏的窗口句柄

窗口句柄就是一个标示,在电脑所有的窗口都是维一的,没有重复的。

然后在通过判断来判断,有没有QQ游戏这个窗口

如果他不等于0那就代表找到游戏的窗口了,所以正明他启动了。

版本 2

程序集 窗口程序集1

程序集变量 文本, 文本型

子程序 _按钮1_被单击

文本 = 到文本 (读入文件 (取运行目录 () + “\1txt”))

如果 (文本 = “”)

写到文件 (取运行目录 () + “\1txt”, 到字节集 (编辑框1内容))

否则

写到文件 (取运行目录 () + “\1txt”, 到字节集 (文本 + #换行符 + 编辑框1内容))

每个汉字占用2个字节 而取代码(,)命令每次只能取得一个字节想要取得汉字的区位码 可以给你写一个代码 版本 2局部变量 a, 整数型

局部变量 b, 整数型

局部变量 ab, 文本型计次循环首 (87, a) ' 汉字分为87个区

计次循环首 (94, b) ' 每个区有94个字符

如果真 (字符 (160 + a) + 字符 (160 + b) = “刘”)

ab = 取文本中间 (到文本 (a + 100), 2, 2) + 取文本中间 (到文本 (b + 100), 2, 2)

信息框 (“刘的编码是:” + ab, 0, )

跳出循环 ()

如果真结束 计次循环尾 ()

计次循环尾 ()

---------打开指定程序---------(如、打开D盘的D:\Program

Files\Tencent\QQ\Bin\QQexe)

代码:

------------------------------

运行(“D:\Program

Files\Tencent\QQ\Bin\QQexe”)

--------------------------我看不到。。。。

打开指定网址(“你打开的网址”)

-------------------

望采纳

版本 2

支持库 iext

支持库 eExcel2000

支持库 eDB

支持库 spec

子程序 方法_导出超级列表框到Execl, , , 通过写都临时数据库,然后用数据库连接提供的一个方式,写到excel表格

参数 参数_超级列表框, 超级列表框

参数 参数_通用对话框, 通用对话框

参数 参数_Excel程序, Excel程序, 可空

参数 参数_Excel工作簿, Excel工作簿, 可空

参数 参数_工作表名, 文本型, 可空

局部变量 局部_列数, 整数型

局部变量 局部_行数, 整数型

局部变量 局部_临时文件, 文本型

局部变量 局部_字段名, 文本型

局部变量 局部_字段类型, 文本型

局部变量 局部_记录内容, 文本型

局部变量 局部_Execl文件, 文本型

局部变量 局部_sql, 文本型

局部变量 局部_数据库路径, 文本型

局部变量 局部_数据库名称, 文本型

局部变量 局部_数据库密码, 文本型

暂停 ()

如果真 (参数_超级列表框取表项数 () = 0)

信息框 (“当前列表没有可导出的数据。”, #信息图标, “温馨提示”)

返回 ()

如果真结束

参数_通用对话框类型 = 1

参数_通用对话框过滤器 = “Excel文件(xls)|xls”

参数_通用对话框默认文件后缀 = “xls”

如果真 (取反 (文件是否存在 (取运行目录 () + “\Excel”)))

创建目录 (取运行目录 () + “\Excel”)

如果真结束

参数_通用对话框初始目录 = 取运行目录 () + “\Excel”

' 本源码来自易语言资源网(>

如果易语言编译器容许您,那么就是可以的,例如keilc51编译器和常用调试arm裸机程序,是可以在c语言语句中加入汇编语言。

由于本人不了解易语言,无法确定其编译器是否可以编译c,但估计是不行。

那么说回来,如果这样,程序就没法写了。实际大家是怎么做的呢。通常做法是将c语言程序编译成dll文件,也就是我们所谓的库文件。然后就可以实现调用了。这种文件我们经常会在常见的程序中看到,原因就是代码保密性好,并且更新很方便,关键在于可以多种语言交互。

当然了,也可以吧所谓的易语言封装成dll,被c调用,当然如果他有这项功能的话。

如果一个c语言已经编译成可执行程序了,比如exe文件,那么易语言端应与c语言端进行进程通信,方可实现数据交互。那么进程通信就有多种方式,那么就不赘述了。

说下DLL的封装,如果是c语言我们需要加入dllh

dllh中放入以下语句

#ifndef _DLL_H_

#define _DLL_H_

#if BUILDING_DLL

# define DLLIMPORT __declspec (dllexport)

#else / Not BUILDING_DLL /

# define DLLIMPORT __declspec (dllimport)

#endif / Not BUILDING_DLL /DLLIMPORT void HelloWorld (void);

#include  "funch"

#endif / _DLL_H_ /

程序中的,DLLIMPORT void HelloWorld (void);,#include  "funch"是例子,就是放你书写的用c写的函数声明的地方。

而在你c语言原先放主函数的那个文件中应该写入以下内容

/ Replace "dllh" with the name of your header /

#include "dllh"

#include <windowsh>

#include <stdioh>

#include <stdlibh>BOOL APIENTRY DllMain (HINSTANCE hInst     / Library instance handle / ,

                       DWORD reason        / Reason this function is being called / ,

                       LPVOID reserved     / Not used / )

{

    switch (reason)

    {

      case DLL_PROCESS_ATTACH:

        break;

      case DLL_PROCESS_DETACH:

        break;

      case DLL_THREAD_ATTACH:

        break;

      case DLL_THREAD_DETACH:

        break;

    }

    / Returns TRUE on success, FALSE on failure /

    return TRUE;

}

我们看见有很多case,也有很多传入参数,最初可以不用管它,也可以使用。如需详细配置,应自行梳理再做决定。

另外一点,对于高级语言和c语言清理现场的问题,也就是被调用函数结束后由被调用函数清理栈,还是由下一个被执行函数清理上一个函数的栈,这点很重要。两种不同的调用方式将导致你虽然可以调用dll,但可能数据出错。这个问题可以说在VB与C的交互上面就可以体现了。__cdecl这个就是默认c语言的栈处理方式。__stdcall是VB的处理方式,那么对于易语言,请您详细查看后再做定论。

那么具体在c语言中提现就是,我们需要在函数前面加上__stdcall以告知编译器采用此类编译方式,应用方法就如下面的声明。

#ifndef _FUNC_H_

#define _FUNC_H_

#include        "dllh"

#include    <winsock2h>

#include    "varh"

DLLIMPORT __stdcall void GetProgressNumFileIDPackageID(int PercentNum,int FileID,int PackageID);

DLLIMPORT __stdcall int GetInfoNum(int Mode);

DLLIMPORT __stdcall void PutInfoNum(int InfoNum,int Mode);

DLLIMPORT __stdcall void Demo0(void);

DLLIMPORT __stdcall void Demo1(void);

DLLIMPORT __stdcall void InitThreadCriticalSection(void);

DLLIMPORT __stdcall void DeleteThreadCriticalSection(void);

#endif /_FUNC_H_/

我听说VB和易语言有相似之处那么我给出VB调用C语言DLL时候的函数书写例子,以便您参考。

Public Class Form1

 

    Private Declare Sub NetToWork Lib "Clientdll" (ByVal IpAddr As String, ByVal Port As Integer, ByVal Mode As Integer)

    Private Declare Function StrToStruct Lib "Clientdll" (ByVal Str As String, ByVal Mode As Integer) As Integer

    Private Declare Function StructToStr Lib "Clientdll" (ByVal Str As String, ByVal Mode As Integer) As Integer

    Private Declare Function GetInfoNum Lib "Clientdll" (ByVal Mode As Integer) As Integer

    Private Declare Sub PutInfoNum Lib "Clientdll" (ByVal InfoNum As Integer, ByVal Mode As Integer)

    Private Declare Sub Demo0 Lib "Clientdll" ()

    Private Declare Sub Demo1 Lib "Clientdll" ()

    Private Sub ToolStripButton1_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles ToolStripButton1Click

        '从text搜索关键词 并读取回链表数据 

        Dim Str As String

        If (ToolStripTextBox1Text = "") Then

            MsgBox("内容不能为空")

        Else

            Str = ToolStripTextBox1Text

            StrToStruct(Str, SEND_SEARCH_0200)

            Dim Th0 As ThreadingThread

            Th0 = New ThreadingThread(AddressOf DownFileList)

            Th0Start()

        End If

    End Sub

上程序但中StrToStruct(Str, SEND_SEARCH_0200)就是一个典型的VB调用DLL函数的例子。

那么如果给些相关的参考资料(C语言封装DLL以及VB调用的问题)

  >

以便您对此更加了解。

1、运行易语言,在窗体中添加一个标筌、一个编辑框,一个按钮。

2、双击窗体,输入以下内容:

信息框("这是一个易语言程序。在编辑框中输入内容后,点击按钮,你会发现标簦的标题变成了了编辑框里的内容",,)

双击按钮,输入以下内容:

标签1标题=编辑框1内容

3、运行,你可以看到效果了。

PS:经过上面的步骤,你已经用易语言写好了一个程序。具体的内容建议参看易语言帮助,或到网上下载相关的教程。

以上就是关于易语言写程序代码里“Afx:14c0000:8:10011:0:0”这个代表着什么意思,谁知道怎么如下面代码所示。。。全部的内容,包括:易语言写程序代码里“Afx:14c0000:8:10011:0:0”这个代表着什么意思,谁知道怎么如下面代码所示。。。、易语言写入文本代码、易语言 取代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9391929.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存