Project1

标题: api声明的位置(说明) [打印本页]

作者: sizz123    时间: 2007-7-11 07:31
标题: api声明的位置(说明)
主站上的"用rm运行其他程序"的脚本,还有早些时候的"rm连接指定网站"的脚本,说法并不是很对.----"把这两句话放在任何地方都可以."是错误的.
这里要说明的是:"声明和调用,并不是一起的.应该把声明写在脚本第一排,或是begin的后面,第一时间就声明."
--------------------------------------------------
哦,再简单说明一下
   ShellExecute = Win32API.new("shell32", "ShellExecute",'lppppl', 'l')
   ShellExecute.call(0,"","notepad.exe","","",1)
   放在一个空白的脚本中是可以运行的,因为空白脚本第一时间就声明了定义,然后调用,所以成功
   由于我们要有目的的调用程序,所以要加个方法进行控制
   正确的方法是
ShellExecute = Win32API.new("shell32", "ShellExecute",'lppppl', 'l')
class Good
def ss
ShellExecute.call(0,"","notepad.exe","","",1)
end
end
注意声明的位置,是在第一时间(或是begin后),然后写类,写方法
如果把那句声明的话写在def ss后面,程序就判断错误
-----------------------
这一点也许是脚本写做人的忽略,特此说明 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹灼眼的夏娜结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: sizz123    时间: 2007-7-11 07:31
标题: api声明的位置(说明)
主站上的"用rm运行其他程序"的脚本,还有早些时候的"rm连接指定网站"的脚本,说法并不是很对.----"把这两句话放在任何地方都可以."是错误的.
这里要说明的是:"声明和调用,并不是一起的.应该把声明写在脚本第一排,或是begin的后面,第一时间就声明."
--------------------------------------------------
哦,再简单说明一下
   ShellExecute = Win32API.new("shell32", "ShellExecute",'lppppl', 'l')
   ShellExecute.call(0,"","notepad.exe","","",1)
   放在一个空白的脚本中是可以运行的,因为空白脚本第一时间就声明了定义,然后调用,所以成功
   由于我们要有目的的调用程序,所以要加个方法进行控制
   正确的方法是
ShellExecute = Win32API.new("shell32", "ShellExecute",'lppppl', 'l')
class Good
def ss
ShellExecute.call(0,"","notepad.exe","","",1)
end
end
注意声明的位置,是在第一时间(或是begin后),然后写类,写方法
如果把那句声明的话写在def ss后面,程序就判断错误
-----------------------
这一点也许是脚本写做人的忽略,特此说明 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹灼眼的夏娜结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: 雷欧纳德    时间: 2007-7-11 16:10
{/fd}怎么可能出错...咳... = =


出错只可能是因为 在调用ss方法的时候ShellExecute还未定义,如果已经定义了则不会出错了,不管你在什么时候声明的,当然作用域内调用。。=v=b
作者: sizz123    时间: 2007-7-11 17:27
"ShellExecute还未定义"
这话应该如何理解啊?把它定义成数据类型?不是已经定义了吗?


作者: 雷欧纳德    时间: 2007-7-11 17:30
class Good
  def ss
    ShellExecute.call(0,"","notepad.exe","","",1)
  end
  ShellExecute = Win32API.new("shell32", "ShellExecute",'lppppl', 'l')
end

Good.new.ss 这样会出错么== ??
作者: sizz123    时间: 2007-7-11 17:45
没有错误,非常感谢,原来可以在后面生命

不过写成
def ss
ShellExecute = Win32API.new("shell32", "ShellExecute",'lppppl', 'l')
ShellExecute.call(0,"","notepad.exe","","",1)
end
是不可行的-----感觉自己在说废话
作者: gpra8764    时间: 2007-7-15 03:37
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1