[分享] 对winhex API编程与函数定义

[复制链接]
  • TA的每日心情
    开心
    2014-4-2 21:30
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    534

    主题

    400

    回帖

    7742

    积分

    Intohard Team

    Rank: 7Rank: 7Rank: 7

    积分
    7742
    发表于 2012-4-13 22:27:07 | 显示全部楼层 |阅读模式
    winhex的脚本,虽然功能强大,但其结构控制真让人恼火.比如条件语句不能嵌套,难以实现一些复杂的功能,即使实现,代码也比较繁琐,可读性不高!例如:

    if(x==1){

    if(y==1)

    ...

    }

    这样的结构在winhex脚本里无法实现,只能采用变通的方法实现.

    想到winhex还支持API级的编程,研究一下,对于有编程知识的人来说,上手很快,但最后发现,自己对API进行编程,基本上无法超越winhex本身提供的功能!winhex的API能实现的功能,在其菜单上基本都已经实现了!如果非要说API的好处,那就是能够突破脚本在结构上的限制,API编程能够提高程序(脚本)的可读性和可维护性.

    API编出的程序,其实就是一个高级脚本!

    最后不得不提,用winhex API编出的程序, 在未安装winhex的电脑上不能运行!

    附上函数定义



    int __stdcall WHX_Init(int APIVersion = 1);

    bool WINAPI WHX_Done();

    bool WINAPI WHX_Open(LPCSTR lpResName);

    bool WINAPI WHX_Create( LPCSTR lpPathName,int Size);

    bool WINAPI WHX_Close();

    bool WINAPI WHX_CloseAll();

    bool WINAPI WHX_NextObj();

    bool WINAPI WHX_Save();

    bool WINAPI WHX_SaveAs( LPCSTR lpNewFileName);

    bool WINAPI WHX_SaveAll();

    bool WINAPI WHX_OpenEx(LPCSTR lpResName,int Param);

    bool WINAPI WHX_Read(LPVOID lpBuffer,int Bytes);

    bool WINAPI WHX_Write(LPVOID lpBuffer,int Bytes);

    bool WINAPI WHX_GetSize(LPLONGLONG lpSize);

    bool WINAPI WHX_Goto(LONGLONG Ofs);

    bool WINAPI WHX_Move(LONGLONG Distance);

    bool WINAPI WHX_CurrentPos(LPLONGLONG lpOfs);

    bool WINAPI WHX_SetBlock(LONGLONG Ofs1,LONGLONG Ofs2);

    bool WINAPI WHX_Copy();

    bool WINAPI WHX_CopyIntoNewFile(LPCSTR lpNewFileName);

    bool WINAPI WHX_Cut();

    bool WINAPI WHX_Remove();

    bool WINAPI WHX_Paste();

    bool WINAPI WHX_WriteClipboard();

    bool WINAPI WHX_Find(LPCSTR lpData,LPCSTR lpOptions);

    bool WINAPI WHX_Replace(LPCSTR lpData1,LPCSTR lpData2,LPCSTR lpOptions);

    bool WINAPI WHX_WasFound();

    int WINAPI WHX_WasFoundEx();

    bool WINAPI WHX_Convert(LPCSTR lpSrcFormat,LPCSTR lpDstFormat);

    bool WINAPI WHX_Encrypt(LPCSTR lpKey,int Algorithm);

    bool WINAPI WHX_Decrypt(LPCSTR lpKey,int Algorithm);

    bool WINAPI WHX_GetCurObjName(LPCSTR lpObjName);

    bool WINAPI WHX_SetFeedbackLevel( int Level);

    bool WINAPI WHX_GetErrorMsg(LPCSTR lpErrorMsg);

    bool WINAPI WHX_SetErrorMsg(LPCSTR lpErrorMsg);

    bool WINAPI WHX_GetStatus(LPCSTR lpInstPath,LPLONG lpWHXVersion,LPLONG lpWHXSubVersion,

    LPLONG lpReserved);
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表