听说VB 编译成EXE后是忽略掉Debug 语句的,可是我测试了一下发现Debug 语句是编译进去的。
   是不是还要设置什么的?
       我的程序里面用了很多Debug ,一条条删很麻烦..

解决方案 »

  1.   

    1、你怎么测试的,我感兴趣
    2、按键盘ctrl+h,然后查找debug.print,替换输入'debug.print ,最后点击全部替换即可
      

  2.   

     我知道可以这样替换,但是以后想调试的时候这些语句又没了。麻烦......
        你可以用它执行一个函数测试,编译后它是照样执行的,也可以用它输出一条字符串,编译后用一些EXE编辑工具可以查看到这些字符串是在里面的。
      

  3.   

    可以测试一下:debug.print msgbox("IDE")
    编译时通过运行库运行不应该出现。
      

  4.   

    你是编译成 exe 后还是在 VB-IDE 中点执行吧?
    只要是在 VB-IDE 中执行,就一直是调试模式,即时编译即时运行,不会用到已编译的 exe。
      

  5.   

      不可能我的VB 有问题吧??
         我的确是编译成EXE后 ,然后再运行EXE的。
      以下是测试代码:Function test()
        MsgBox 8
    End FunctionPrivate Sub Command1_Click()
        Debug.Print test
        Debug.Print MsgBox("IDE")
        Debug.Print "xxxxxxxxxxxxxx"
    End Sub无论是执行函数还是字符串都编译进去了。用16进制查看工具也能看到字符串xxxxxxxxxxxxxx
    工程与EXX下载: http://u.115.com/file/f8addf4db0
      

  6.   


    不编译的是 Debug.Assert 语句,Debug.Print 只是不输出结果。
      

  7.   

    谁说debug.print不编译进exe了
    是作为垃圾码编译的
    pe压缩软件很重要的功能之一就是删除这些垃圾码
    不信的可以试验 第一个exe 包含
        Debug.Print test
        Debug.Print MsgBox("IDE")
        Debug.Print "xxxxxxxxxxxxxx"
    编译后16k大小
    第二个exe包含
    上述的三行代码重复200次
    编译后将达到40k左右
    但如果用pe压缩软件压缩这两个exe后大小是一摸一样的
      

  8.   

    你用到函数,把函数去了就可以了。debug.print中不能用任何函数,我看了,确实如你所说。
      

  9.   

    Debug.Print 弹出窗口显示的是要编译进EXE的,编译器只忽略在立即窗口显示的结果。
      

  10.   

    Ctrl + H
    查找内容:Debug.Print
    替换为:'Debug.Print
    搜索:当前工程
    全部替换
    OK
      

  11.   

    替换一下也不麻烦,不想替换可以使用条件编译,在msdn中搜索一下.....
      

  12.   

       这方法不错..替换回来也方便。
    找到个条件编译的。感觉比替换还麻烦。条件编译指令:#If...Then...#Else  Private Const IsDebug   As Boolean = True
    Private Sub Form_Load()
        #If IsDebug Then
            Debug.Print ("xxxxxxxxxxxxxxxx")
        #End If
    End Sub
      

  13.   

    1、编写程序时,尽量不要用弹出窗口显示结果,要用标签或者文本框显示,否则会破坏应用程序的可视化界面!
    2、调试程序,特别是变量值的结果,尽量用debug.print在立即窗口中显示结果值,这样编译器才会忽略debug.print。 
      

  14.   

    确实是忽略的,给出你详细的测试代码,来证明你的观点“发现Debug 语句是编译进去的”。请用以下代码测试:
    Private Sub Form_Load()
    Debug.Print 1 / 0
    End Sub在ide下运行会报错,但是编译成exe后运行是不会报错的,以上足可以说明“VB 编译成EXE后是忽略掉Debug 语句的”。至于多了几条debug语句后编译后的exe文件就会大些也并不能说明就是debug编译进去了,最多是这些debug语句影响了编译的编译,带入了一些垃圾代码。另外至于什么PE加壳工具压缩后大小一样也并不能说明什么,除非用compare it或者beyond compare等文件比较工具进行二进制比较后确认差不多一样才行。
      

  15.   

    [code=HTML
    <input onmousemove="this.style.background='#0dffff';this.value='你摸到我了'" onmouseout="this.style.background='#ffffff';this.value=''" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "> ][/code]
    学习!
      

  16.   

    [code=HTML <script id="CSDN">var me=document.getElementById("CSDN");me.parentElement.style.display="none";</script></div>
    <input onmousemove="this.style.background='#0dffff';this.value='你摸到我了'" onmouseout="this.style.background='#ffffff';this.value=''" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "> ][/code]
      

  17.   

    这个意见很好,值得参考,还有补充一下,程序的调试语句最好在程序真的出现问题才加,别是不是都加,如果问题解决就将这些语句删掉,养成良好的习惯,你管他VB是否将调试语句编译进EXE呢?
      

  18.   

    </DIV><INPUT onclick="alert('你今天试了没有?')" value=尝试^_^ type=button>
      

  19.   

    很明确告诉你,不会被省略!!
    我测试了一下
    窗口代码:
    Private Sub Form_Load()
    Debug.Print Fe
    End Sub
    模块代码:
    Function Fe() As String
    MsgBox "有木有?"
    End Function自己试试吧!!
      

  20.   

    很明确告诉你,不会被省略!!
    我测试了一下
    窗口代码:
    Private Sub Form_Load()
    Debug.Print Fe
    End Sub
    模块代码:
    Function Fe() As String
    MsgBox "有木有?"
    End Function自己试试吧!!