假设有个SUM.DLL文件,其中有个函数:
function Sum(a,b:Integer):Integer; stdcall;
begin
  Result := a + b; 
end;
现在我想在应用程序中修改Sum函数,将它的Result值修改成Result := a + b -1,可以办到吗?
(重新生成一个新的DLL(比如SUM2.dll),也可以)

解决方案 »

  1.   

    >>现在我想在应用程序中修改Sum函数,将它的Result值修改成Result := a + b -1,可以办到吗?
    可以做到,如果那个dll不是特别的加密防伪的话>>(重新生成一个新的DLL(比如SUM2.dll),也可以)
    重新生成一个新的DLL, 命名为 SUM.dll, 将原来的,改名为 SUM2.dll然后,增加 function Sum(a,b:Integer):Integer; stdcall; 这个函数和你自己的算法
    其它函数,你直接从 sum.dll 导出,然后,里面只不过调用 sum2.dll(你原来的sum.dll)而已
      

  2.   

    TO: aiirii(ari-淘金坑) 
    谢谢你的指点!
    可以给出一段应用程序生成DLL的代码吗?不胜感激!
      

  3.   

    在我blog上有一篇不修改dll不创建新dll的方法来解决这个问题的文章
    不过我现在进不去,也不好给地址了,自己找吧
    lexchou.blogcn.com
      

  4.   

    可以给出一段应用程序生成DLL的代码吗?-----是用一个新的DLL去重新封装这个旧的DLL相当于 应用程序 --> 新 --> 旧
    新 - 1 --> 应用程序。
      

  5.   

    http://www.blogcn.com/user53/lexchou/blog/23450648.html
    http://www.blogcn.com/user53/lexchou/blog/23459406.html这两个