精华内容
下载资源
问答
  • 图解如何用VS2008调试DLL程序

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                    本文章主要参考了这篇文章:
    http://zhidao.baidu.com/question/207074420.html


    今天在VS2008中写DLL程序时,DLL中的函数出现了问题,

    想调试一下,以便知道原因,因我从来没有调试过DLL程序,


    因此从网上找了下调试DLL程序的方法,记录如下:

    第一步:在VS2008 的“解决方案资源管理器”中右键选择 DLL 项目的属性,

    截图如下:




    第二步:打开DLL属性窗口后,修改以下属性值即可:


    //修改 要启动的调试器 的值
    1. 要启动的调试器:本地Windows 调试器 

    //填写命令的值为rundll32.exe

    2. 命令:rundll32.exe//填写命令参数

    3. 命令参数:$(TargetFileName)SetHook   //SetHook为我的DLL中的函数的名字,

                         //请将其替换为你的函数的名字


    //填写工作目录
    4. 工作目录:$(OutDir)


    设置完成后,截图如下:




    好的,设定部分结束了,这时你可以在代码里设定断点,

    VS2008设置断点的快捷键为F9

    按F5,就可以运行了,这时候会弹出一个对话框,

    说rundll32.exe不能找到,不用理他,点击“是”按钮,继续运行,


    呵呵,这下可以进行调试DLL之旅啰...
               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • VS是一个强大的IDE,如果你现在只会简单地它查看一下执行效果,那就太大材小用了。 1. CRT函数报错 首先来说说最常见的一个编译错误。微信里常常收到这个错误的截图提问。 CRT(C Runtime Library = C运行时间库...

    VS是一个强大的IDE,如果你现在只会简单地用它查看一下执行效果,那就太大材小用了。

    1. CRT函数报错

    首先来说说最常见的一个编译错误。微信里常常收到这个错误的截图提问。

    CRT(C Runtime Library = C运行时间库)是windows平台下的一个概念。CRT函数准的C语言函数。例如:printf、scanf、strlen、fopen等函数都属于CRT函数。

    安全CRT函数是微软对C/C++的扩展,对大部分的CRT函数都派生了一个新的函数形式。比如把fopen函数重新定义如下:

    errno_t fopen_s(FILE** pFile, const char *filename, const char *mode);

    微软认为,使用这种函数能够帮助开发者更好地规避内存泄露、空指针访问等常见问题。为了尽量让大家养成使用安全CRT的习惯,在编译没有使用安全CRT函数的代码时,VS会报出如下错误:

    Error 1 error C4996: 'freopen': This function or variable may be unsafe.
    Consider using freopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
    See online help for details. e:\c\vstestc\vstestc\fileoper.c 8 1 VSTestC

    如果你想让自己的代码写的更通用,不想使用微软的所谓安全CRT函数,可以使用下面的方法:

    1.1 代码中定义宏

    如果你仔细越短报错信息,就会发现其实VS已经告诉你怎么解决了。只要定义一下_CRT_SECURE_NO_WARNINGS就能解决。把下面的句子写在代码中:

    #define _CRT_SECURE_NO_WARNINGS

    现在编译是不是就成功了。

    1.2 工程中配置

    如果非安全CRT函数用在很多不同的文件中,由于作用域的关系,你可能需要在多处写下宏定义语句。这样不太方便,这时候你可以选择在工程配置中一劳永逸的解决这个问题。步骤如下:

    • 打开工程属性界面

    在工程名上右键,选择“Properties”,进入下面的界面。

    • 宏定义添加窗口

    如图,选择“Configuration Properties” -> “C/C++” -> “Preprocessor” -> “Preprocessor Definitions”。点击右边的下拉箭头,之后点击“Edit”。

    • 添加宏定义

    _CRT_SECURE_NO_WARNINGS添加到List中。

    之后,点击OK。

    现在编译试试,报错没有了。

    1.3 静态引用运行时库

    打开打开工程属性界面,选择“C/C++” -> “Code Generation” -> “Runtime Library”。

    如图,默认情况下是动态引用。我们需要改成静态引用。

    下拉窗中的四个选项意义如下。

    对与debug版本的程序:

    • /MTd 静态引用运行时库的debug版本
    • /MDd 动态引用运行时库的debug版本

    对与release版本的程序:

    • /MT 静态引用运行时库的release版本
    • /MD 动态引用运行时库的release版本

    1.4 忽略警告

    报错信息中,有这样一部分error C4996:,这是这个问题的错误码。我们可以显示地要求VS不要提示这种问题的信息。只要在代码开始的部分加入下面这句话即可:

    #pragma warning(disable:4996)

    问题是不是解决了。

    2. 查看运行结果

    #include 
    
    int main()
    {
        printf("Hello world!");
        return 0;
    }

    上面这段代码,如果直接按F5运行,你会看到一个一闪而过的控制台窗口。这个窗口出现的时间很短,以至于很难看清楚结果。解决这个问题又很多方法,常见的大概有下面四种:

    2.1 Ctrl + F5

    这个是最常见的方法,按下Ctrl + F5组合键,会看到下面这个结果:

    美中不足的是系统会自动添加一行字:“请按任意键继续...”。当你按任意键之后,窗口消失。

    2.2 断点

    如图所示,在最后一行代码处打断点。之后,按F5开始调试执行程序,会看到下面这个结果:

    程序被停在断点处,而命令行窗口也被停下了。看完结果后,只需要再按一下F5继续执行程序,它就会正常结束。

    2.3 getch()

    通过getch函数,可以实现和2.1相同的效果,不过没有哪行字。代码如下:

    int main()
    {
        printf("Hello world!");
        getch();
        return 0;
    }

    执行这段代码,命令行会停在新加这行代码执行后,直到按下任意键程序才继续执行到结束。

    2.4 system("pause")

    system函数是不是很熟悉,上一篇文章中我们已经认识过了。加上这句话其实是调用了系统提供的pause这个命令。效果和2.1完全相同。

    3. 单步调试

    依然是前面那段代码,我们按F10键来进行单步调试。

    左边黄色的箭头表示当前程序的执行位置。按一下F10键,箭头指向的这行代码就被执行,同时箭头指向下一行。这样完全按照程序运行的过程执行。

    如果程序是这样,在调用Function函数时,如果按F10,程序会一次执行完整个Function函数。但如果你按F11,箭头会进入Function函数内部,就像这样:

    在程序运行中,把鼠标停留在一个变量上,此时会看到这个变量当前的值。如下图:

    当然,还可以把这个变量拖入watch窗口,这样就能实时查看这个变量的变化:

    单步调试还有很多神奇之处需要你慢慢发现。这部分内容不好讲,不过你只要稍微操作一下就能学会。

    4. 条件断点

    int main()
    {
        int i;
        for (i = 0; i < 100; i++)
        {
            printf("i = %d\n", i);
        }
    
        return 0;
    }

    这段代码很简单,打印0~99这100个数,假如,我是说假如你的程序运行到第95次循环时出现了问题,如果你想单步调试看看i的变化情况,你不可能一直按F10直到第95次循环。那样手肯定吃不消。这时候,就用到了条件断点的方法。修改代码如下:

    如图,添加一组 if 语句,把断点打在 if 中的代码里。现在按F5调试执行,程序会在第95次循环中我们打断点的地方停下,之后你再按F10单步调试就好了。是不是简单多了。

    5. 调试的乐趣

    调试代码能够让编程变得不那么枯燥。当你一步一步跟着程序的执行方式去思考问题,你会更加深刻地体会计算机的某些逻辑。

    另外,在你写程序时,脑子里想的是如何设计代码,但在你调试的过程你会在另外一个角度去审慎这段代码,这时你很容易发现其中的不足之处。很多情况下,一个程序有问题,看代码怎么也发现不了究竟错在哪里,不过一调试就能马上找到。

    学会了代码调试,你的编程学习就算是真正入门了。它不仅仅是你软件开发中的工具,也是编程学习过程中不断提高和不断自我完善的神奇。

     


    学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群
    639368839,我们一起学C/C++!

    转载于:https://www.cnblogs.com/jiaoyu121/p/6973994.html

    展开全文
  • 如何用VS调试? (当然你可以选择WinDbg.不过这里就讨论VS) 你或许想问我干嘛不从一开始就用VS写代码? 设想, 有一个人喜欢用 NMAKE 和 MAKEFILE 创建工程. 他已经编译链接好了. 得到了 EXE. PDB. 现在他叫你帮他...

    如果你手里有一个现成的EXE, 以及EXE相关联PDB文件, 还有相关联的CPP文件和H文件. 你如何用VS调试? (当然你可以选择WinDbg.不过这里就讨论VS)

    你或许想问我干嘛不从一开始就用VS写代码?

    设想, 有一个人喜欢用 NMAKE 和 MAKEFILE 创建工程. 他已经编译链接好了. 得到了 EXE. PDB. 现在他叫你帮他调试一下. 你又喜欢用VS调试, 怎么办? 对. 这就是下面要说的.

     

    首先推荐阅读这个链接作为热身:

    https://msdn.microsoft.com/zh-cn/library/0bxe8ytt.aspx

     

    总的来说, 有2种办法

    1. 附加到进程

    2. 创建调试EXE的解决方案

     

    无论你选择哪种, 步骤是类似的:

     

    首先的首先, 准备工作: 确保PDB文件和CPP文件以及H文件的相对路径不发生变化.

    因为PDB中保存了CPP文件和H文件的相对路径, 这样调试器才知道去哪里找源文件和头文件. 如果你挪动PDB或者CPP文件或者H文件导致它们之间的相对路径变了的话, 调试器就找不到符号了. 你就没法打断点. 后续的调试工作也就无法进行.

     

    1.打开VS

    2.把源文件组织为一个项目:文件->新建->从现有代码创建项目->选择项目文件位置, 比如VS_DEBUG\ClientSrc, 项目名称比如说ClientSrc, 将文件从这些文件夹添加到项目中, 选择比如说C:\TestProject, 确保所有你写的CPP和H文件都在这个目录(这些源代码文件只是会被引入项目, 但不会拷贝到VS_DEBUG\ClientSrc目录下, 也就意味着你仍然可以随时修改代码并用NMAKE构建而不必担心代码在VS中更新的问题)

    ##########################################################

    # 注意这一步非常重要, 如果你只是单纯地用VS打开某个源文件而不是把所有的源文件组织到一个解决方案里的话,

    # 你是无法使用"转到定义", "转到声明", "查看定义", "查找所有引用"这些功能的, 你查看代码的时候会很麻烦.

    ##

    设置源文件搜索路径:

    然后右击解决方案->属性->通用属性->调试源文件->设置为C:\TestProject, 这样调试器知道在这个目录可以搜索到你的源文件.

    3.文件->打开->项目/解决方案->在右下角选择"可执行项目文件(.exe)"->选中"添入解决方案"->打开你想调试的EXE文件即可, 比如 Client.exe

    4.现在你可以看见解决方案中有2个项目, 一个是只有代码的项目名为ClientSrc. 一个是只有EXE的项目名为Client. 

    5.把Client设为启动项目

    6.设置PDB的位置: 选中Client项目, 在工具栏点击:调试->选项和设置->符号->把PDB文件的路径添加进去并打勾即可

    7.设置命令行参数, 工作目录:选中Client项目, 右击, 点属性, 就可以看到设置命令行参数和工作目录的地方

    8.在ClientSrc中打上断点, 调试Client即可. 或者你用附加到进程也行.

     

    附上几张截图:

     

     

    参考资料:

    https://msdn.microsoft.com/zh-cn/library/ms241613.aspx

    https://msdn.microsoft.com/zh-cn/library/0bxe8ytt.aspx

     

    后记:

     

    我写这篇BLOG的原因是学习Inside COM 第10章代码的时候遇到的问题.

    作者用的MAKEFILE来完成了 IDL的编译, 组件的编译, DLL的生成(Server.dll), EXE的生成(Server.exe, Client.exe).

    Server.dll会被加载到Client.exe的进程中从而Client.exe可以使用Server.dll中的组件.

    Client.exe也可以与Server.exe使用COM的LPC(Local Procedure Call, 即单机版的Remote Procedure Call, RPC)来完成进程间通信, 从而Client.exe也可以使用Server.exe中实现的组件.

    如果要把作者的代码在VS中建立一个DLL工程生成Server.dll, 两个EXE工程分别生成(Server.exe)与Client.exe也不是不行. 只不过没有MAKEFILE来得那么顺畅. (因为IDL文件的编译会生成几个.c文件和.h文件, 而且这些文件要用到后面DLL与EXE的生成, 但目前看来, 我不知道怎么让VS的解决方案中也能把这个过程也自动化起来.只能依靠MAKEFILE要方便一些.一个nmake命令就够了.)

     

    当然我可以用WinDbg来调试这个项目. 但是我想尝试一下是否用VS也能完成. 因为以前没试过. 摸索了一段时间想了个这个办法出来.

     

    这里要补充2个比较重要的问题.

     

    1.

    调试Server.dll中的代码, 打上断点提示"当前不会命中断点, 没有为该文档加载任何符号"

    这是因为Client.exe在没有加载Server.dll之前. Server.dll对应的Server.pdb也没加载.当Server.dll加载之后就好了.可以通过如下步骤验证.

    1.1

    在Client.cpp的main函数打上断点.

    在CMPNT1.CPP中任意一个地方,比如CA::FxStringIn,打上断点(提示"当前不会命中断点...")

    1.2

    按F5调试, 点击工具栏的调试->窗口->模块(这个窗口只有在调试已经启动的情况下能勾选, 没按F5启动调试是无法打开这个窗口的)

    你可以看到Client.exe已经加载, 但是找不到Server.dll, 此时CMPNT1.CPP中的断点仍然提示"当前不会命中..."

    单步执行main函数(并用命令告诉Client.exe加载Server.dll而不是去找Server.exe), 执行了CoCreateInstance之后, 再去查看模块窗口, 发现Server.dll已经加载, 此时CMPNT1.CPP中的断点变为可以命中的断点了

    2.

    按照上面所述的步骤1.1, 1.2做了, 看到Server.dll也加载了. 但是CMPNT1.CPP中的断点仍然提示"当前不会命中..."

    2.1

    原因是pdb与dll不匹配.

    2.2

    这是因为此时的Server.pdb对应的是Server.exe而不是Server.dll. 把MAKEFILE中"nmake -f make-one OUTPROC=1"这一行注释掉即可.

    MAKEFILE大概是按如下顺序生成项目的.

    编译IDL, 生成几个.C文件和.H文件.

    编译所有的.C和.CPP等等文件

    链接生成Client.exe, 生成Client.pdb

    链接生成Server.dll, 生成Server.pdb

    链接生成Server.exe, 生成Server.pdb(把Server.dll对应的pdb给覆盖了)

    所以不生成Server.exe即可.

    3. 

    调试Server.exe中的代码, 打上断点提示"当前不会命中断点, 没有为该文档加载任何符号"

    Server.exe是一个独立的进程, 不会加载到Client.exe的进程空间中. 所以调试Client.exe的时候不会命中Server.exe的代码断点.

     

    首先, 把MAKEFILE的"nmake -f make-one"注释掉, 不生成Server.dll, 只生成Server.exe.

     

    3.1 不可行的办法

    把Server.exe也添加到解决方案中调试.(就跟添加Client.exe的方法一样)

    这种办法是不行的. 因为一个调试器同一时刻只能调试一个进程.

    选中解决方案资源管理器中的Server, 按Delete键移除.

    3.2 第一种可行的办法

    调试Client.exe 在 Client.cpp的 main函数打上断点. 单步调试. 执行到CoCreateInstance的时候

    打开任务管理器, 你会发现启动了一个Server.exe

    点击VS的工具栏:调试->附加到进程->选Server.exe->按F5继续执行->

    你会发现CMPNT1.CPP中Server.exe的代码断点命中了.->再按F5继续执行就会跳转到Client.exe的下一个断点(如果有的话, 没有就运行到程序结束)

    用这种方法, 只要2个进程中的任意一个后续代码还有断点, 调试器就会切换到相应的进程命中断点. 当2个进程后续的代码都没有断点的话, 你按F5就会让2个进程都一直运行到结束. 如果你希望用F10单步, 确保不漏掉每个进程中的所有代码的话, 进程间跳转/通信的时候又会有很多没有源码的代码.(当然你可以边调试边给后面的代码打断点, 直接按F5跳过进程切换的代码.) . 总的来说有方便的地方也有不方便的地方(你需要在调试开始的时候选择附加的进程. 以及随时去添加断点以便用F5跳过进程切换的代码.).

     

    举个例子:

     

    现在你在 Client.cpp 只给 main打了一个断点, 在 CMPNT1.CPP 中 有2个断点, 一个在 CA::FxStringIn上 还有一个在 CA::FxStringOut 上

     

    按F5开始调试, 命中 main函数, F10单步, 调用CoCreateInstance之后, Server.exe启动, 选择附加到进程Server.exe, 然后按F5, 命中Server.exe的CA::FxStringIn, F10单步, CA::FxStringIn快执行完了之后进入rpcrt4.dll的进程通信代码(无源码), 此时不能按F5, 按F5之前先去Client.cpp的CA::FxStringIn后面一行代码打上断点, 然后按F5, 命中Client.cpp中刚刚打的断点, 继续F10, 命中Server.exe中的CA::FxStringOut, 继续F10, 这回我们学聪明点, CA::FxStringOut返回之前我们就去Client.cpp中调用FxStringOut的代码后一行打上断点, 直接F5就跳过了rpcrt4.dll的进程通信代码, ... 反复如此调试即可

     

    可以看出, 虽然能用. 但是多少还是有点麻烦.

     

    3.3 第二种可行的办法

    就像我们创建一个解决方案调试Client.exe一样.再创建一个解决方案调试Server.exe就行啦. 2个调试器分别调试2个EXE, 互不干扰.

    这个用起来最方便. 只不过你要创建2个解决方案同时调试2个EXE. 也是它麻烦的地方.

     

    总之,发生了上面所说的问题.建议去工具栏的调试->选项和设置->符号 看看PDB的搜索位置是否设置对了. 以及是否正确配置了"对以下模块自动加载符号"(这里面可以配置那些DLL或EXE自动加载符号, 哪些不自动加载.)

     

    项目下载:

    http://pan.baidu.com/s/1A0FPs

    目录:

    CHAP10

      SRC // MAKEFILE以及源文件, nmake 生成, nmake clean清理

      VS_DEBUG // 用于调试DLL和EXE的VS2013解决方案, 点击.sln文件即可打开解决方案, 打开之前确保已经用MAKEFILE生成了EXE和DLL

    建议:

    MAKEFILE中"nmake -f make-one"和"nmake -f make-one OUTPROC=1"只保留一个. 避免Server.exe的PDB把Server.dll的PDB给覆盖了.

    Demo.sln, Debug目录, 以及其他的几个就是调试Client.exe建立的VS2013的解决方案.如果下载下来因为路径问题用不了的话, 可以按照上面说的步骤重新建立即可.

    使用方法:

    管理员权限打开"VS2013 开发人员命令提示", 切换到MAKEFILE的目录.

    nmake构建项目.

    nmake clean清理项目.

     

    参考资料:

    http://www.cnblogs.com/MigCoder/p/3368319.html

    http://www.cnblogs.com/lidabo/p/3486134.html

    https://technet.microsoft.com/zh-cn/magazine/ms241613.aspx#bkmk_find_symbol___pdb__files

     

    展开全文
  • 如何用VS编译调试C程序

    千次阅读 2018-08-04 10:18:47
    1打开vs2012——文件——新建——项目 单击 2在对话框左侧分别找到模板——其他语言——visual c++——win32(如图) 选择“win32控制台应用程序”并设置好”名称“和”存储路径 “后单击确定 3单击下一...

    参考教程网址如下

    http://jingyan.baidu.com/article/1709ad80a181c64634c4f0da.html

     

    简单说一下流程

    1打开vs2012——文件——新建——项目 单击

    2在对话框左侧分别找到模板——其他语言——visual c++——win32(如图)

    选择“win32控制台应用程序”并设置好”名称“和”存储路径 “后单击确定

    3单击下一步

    4然后勾选”空项目“

    5接着单击菜单栏——视图——解决方案资源管理器

    6在弹出的浮动窗口中单击右键 ”源文件“

    7然后选择——添加——新建项  单击

    8接着选择visual c++ 后选择”c++文件“并命名为holloworld.c

    9同理可以右键“头文件”,添加头文件.h

    10 接着输入c语言代码

    #include<stdio.h>
    
    int main()
    
    {
    
     printf("hello world!");
    
     return 0;
    
    }

    接着单击”本地windows调试器“或者ctrl + F5

     

    长时间不写C程序了,要注意,不同的语言,代码规范是不完全相同的。

    visual studio不只是用在C#上,这个IDE工具功能很全面,C#,winform编程只是这个IDE工具支持的其中一部分

    它同样可以进行前端开发,C编程,C#编程,C++编程等等

    该文章想说明的是我们要灵活使用我们的开发工具,发挥它该有的价值,本例即用IDE来进行C语言调试的。

    展开全文
  • 一直以来,我都是用microsoft script debuger来调试asp程序,发现脚本调试器很不方便,于是我尝试用vs2003来调试asp程序,经过一翻摸索,终于找到了调试的方法,现归纳如下,供大家参考1、启动你的ASP程序2、启动...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls;...using System.Windows.Data;... private void comboBox1_...
  • 如何用VS调试ArcGIS Destop AddIn插件

    千次阅读 2013-07-17 11:19:37
    如何用VS调试ArcGIS Destop AddIn插件   最近用ArcGIS Destop AddIn .net版开发了一些小插件,总结了一下如何进行AddIn断点调试的方法,和大家分享一下;   找到我们的一个C#的AddIn的实例程序,这里我们选择...
  • VS2015下如何用编译、调试程序。 (通过实践给出截图) 安装步骤: 下载安装网址[VS2015下载地址](http://www.ithome.com/html/win10/164028.htm) 编译: 选择新建项目——选择Visual C++——空项目 编写一个...
  • (前排提示:VS2017在启动选项中可以看到"附加到Unity调试程序",但是在VS2019中需要到"调试(D)-附加到Unity调试程序") 首先打开VS-工具(T)-获取工具和功能 选中Unity开发组件安装 打开Unity3D - EDit - preferences ...
  • 如何用vs2015调试

    2019-07-23 21:00:41
    调试(Debug)是作为一个程序员必须要学会的东西,学会调试可以极大的提高开发效率,排错时间,很多人不喜欢调试,但我认为这是一个很不可取的选择,调试的时候能让我们看到程序的执行顺序、步骤以及过程等,调试的...
  • 本文为大家介绍,如何VS Code上安装一个C/C++编译器,为VS Code 装上一双会飞的翅膀,废话不多说,我们开始准备起飞。首先,安装好VS Code之后,需要给其安装一个C/C++扩展。在扩展库里搜索 “c++”。由于VS Code...
  • 网友邮件问的,我把问答过程贴出来,希望对其他碰到相似问题的朋友有些帮助:在工作中碰到这样一个问题,我...我的问题是如果我用vs2008 可以调试mfc程序,碰到里面需要调用wpf程序的时候如何自动打开vs2010的环境调...
  • C#写的web application,不用卡西尼调试,想IIS调试,怎么弄啊,有没有好的文章可以参见?
  • UEFI快速上手:如何用VS调试NT32模拟环境 很多人爱好者都想尝试学习UEFI,无奈没有硬件,也没有调试环境。其实NT32是个很好的模拟环境,大家可以在windows上利用熟悉的Visual Studio来编译,调试UEFI内核,driver和...
  • 如何用VS Code正确编写运行一个CPP程序   最近准备用VS Code来复习一下数据结构的算法题,可是发现写出来的程序总是运行不成功,就算照着书上的程序敲都显示运行问题,那应该是我除了源程序以外,还有一些其他的...
  • 2. 但是在一些情况下直接attach并无法调试,例如安装程序installer, 这样使用如下的调试方法即可调试安装程序。 System.Diagnostics.Debugger.Launch() 可以弹出选择调试器的对话框! 转载于:...
  • 如何VS Code 中运行、调试你的第一个Angular2程序

    千次阅读 热门讨论 2017-04-30 14:24:12
      在使用 VS Code进行调试之前,需要做一些准备工作,确保必要的环境已经安装,您的Angular2 应用程序已经可以正常编译和运行。 最新版本的 VS Code 谷歌浏览器(其他主流浏览器也可以) 配置   在VS...
  • 在《Windows驱动开发技术详解》书中讲述了如何设定VC以编译驱动程序,不过稍有点麻烦。 在[2,3]中也有用VC设置的方法。不过有点麻烦。 下面,我们另外一种方法来进行编译: 在[4]官网上下载如下几个文件: ...
  • 如何在Visual Studio中运行这个程序 第一步:打开已经下载好的Visual Studio后 如图所示,两个箭头给出两种方法,点击下面箭头直接创建新项目,或者点击上面箭头后在点击(如下图) 第二步:如下图,可以修改...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 293
精华内容 117
关键字:

如何用vs调试程序