小编Jim*_*ell的帖子

修改ComboBox SelectedIndex而不在C#中触发事件

我的C#应用​​程序有comboBox一个SelectedIndexChanged事件.通常,我希望这个事件能够解雇,但有时候我需要事件才能解雇.我comboBox是MRU文件列表.如果发现列表中的文件不存在,则从该项中删除该项comboBox,并将其comboBox SelectedIndex设置为零.但是,将事件设置comboBox SelectedIndex为零会导致SelectedIndexChanged事件触发,在这种情况下会出现问题,因为它会导致某些UIF代码在事件处理程序中运行.是否有一种优雅的方法来禁用/启用C#表单控件的事件?谢谢.

c# events winforms

8
推荐指数
3
解决办法
1万
查看次数

转到定义失败 - Visual Studio 2008

我在Visual Studio 2008中编写了一个C++应用程序.它在几个头文件中有很多已定义的结构,例如:

#pragma pack( push , 1 )                // align on a 1-byte boundary

typedef struct myStruct_tag
{
    /* ... */
} myStruct_t;

#pragma pack( pop )                     // end 1-byte boundary alignment
Run Code Online (Sandbox Code Playgroud)

在源文件中,这些定义的结构如下使用:

void MyFunc( void )
{
    myStruct_t * myStruct = NULL;

    myStruct = (myStruct_t *)malloc( sizeof(myStruct_t) );

    /* and so forth and so on... */
}
Run Code Online (Sandbox Code Playgroud)

即使它成功编译0错误和0警告,有时当我右键单击自定义数据类型(如in MyFunc)时,它给我一个错误:

未定义符号'myStruct_t'.

然后单击"确定"关闭对话框并按Ctrl+ Alt+ F7重建解决方案.它构建时没有任何错误或警告,因此我知道它正在找到myStruct_t编译时的定义,但是当我尝试使用Go to Definition功能时它无法找到它.我唯一想到的是这个应用程序有很多定义的结构,单字节对齐,但这不应该有所作为.有人知道如何解决这个问题吗?

c++ visual-studio-2008

8
推荐指数
1
解决办法
5465
查看次数

将调试信息发送到Visual Studio"输出"窗口的简单方法

我在Visual Studio 2010中启动了一个空白项目来编写C应用程序.如何将调试信息发送到" 输出"窗口(菜单" 调试" - >" Windows" - >" 输出")?是否有相对简单的方法来实现TRACEOutputDebugString类似的东西?

c visual-studio-2010 debug-information output-window

8
推荐指数
2
解决办法
1万
查看次数

如果git中的分支需要重新绑定,如何用bash脚本实际检查?

我正在为我的团队制作一个bash脚本,以强制定期对工作分支进行重新定位.我目前面临的问题是如何确定分支是否落后于主分支和/或是否需要重新分配,而不是盲目地尝试重新分支分支.

这是我到目前为止的简化版本:

#Process each repo in the working directory.
for repo_dir in $(ls -1); do
    # if working branch is clean ...

        # BEGIN update of local master
        git checkout master
        git fetch origin
        git merge remotes/origin/master
        # END update of local master

        for sync_branch in $(git branch | cut -c 3-); do
            if [ "$sync_branch" != "master" ]; then
                # BEGIN rebase working branch
                git checkout $sync_branch
                git rebase master
                # Do NOT push working branch to remote.
                # …
Run Code Online (Sandbox Code Playgroud)

git bash rebase git-rebase git-bash

8
推荐指数
1
解决办法
2577
查看次数

未处理的C#例外

C#应用程序中未处理的异常是否会导致蓝屏死机?

c# exception

7
推荐指数
1
解决办法
553
查看次数

Unmangling C++ DLL函数名称

可能重复:
如何停止DLL导出函数的名称修改?

我有一个用C++编写的DLL.导出的函数名称需要解除标记.例如,int MyFunc( int Param1, int Param2 );需要向外部应用程序显示尝试简单地调用库函数MyFunc.但是,当我使用Dependency Walker查看它时,它看起来像_MyFunc@8.这就是我在C++中声明的方式:

extern "C" __declspec(dllexport) int WINAPI MyFunc( int Param1, int Param2 );
Run Code Online (Sandbox Code Playgroud)

我以为extern "C"会做到这一点.我如何摆脱破坏?谢谢.

c++ dll

7
推荐指数
1
解决办法
6304
查看次数

将成员函数指针转换为TIMERPROC

如何将成员函数指针转换TIMERPROC为与WINAPI一起使用的类型SetTimer?下面的代码片段显示了我现在是如何做的,但是当我编译时,我收到此错误:

错误C2664:'SetTimer':无法将参数4从'void(__ stdcall CBuildAndSend ::*)(HWND,UINT,UINT_PTR,DWORD)'转换为'TIMERPROC'

回调需要绑定到其原始类实例.如果有更好的方法,我会全力以赴.谢谢.

class CMyClass
{
public:
    void (CALLBACK CBuildAndSend::*TimerCbfn)( HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime );

private:
    void CALLBACK TimeoutTimerProc( HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime );
};

CMyClass::CMyClass()
{
    ...

    this->TimerCbfn = &CBuildAndSend::TimeoutTimerProc;

    ...

    ::CreateThread(
        NULL,                           // no security attributes
        0,                              // use default initial stack size
        reinterpret_cast<LPTHREAD_START_ROUTINE>(BasThreadFn), // function to execute in new thread
        this,                           // thread parameters
        0,                              // use default creation settings
        NULL                            // …
Run Code Online (Sandbox Code Playgroud)

c++ winapi casting member-function-pointers

7
推荐指数
1
解决办法
6685
查看次数

通过USB模拟UART

有人知道是否可以通过USB模拟UART(简单的串行发送和接收)?这将如何实现?

我在Microchip网站上找到了这个链接,但它不是即将发布的.

http://www.microchip.com/forums/m522571-print.aspx

有任何想法吗?谢谢.

embedded usb emulation uart

7
推荐指数
2
解决办法
1万
查看次数

Visual Studio - 如何摆脱输出窗口?

我刚刚开始使用VS2005,大部分时间我都坚持使用VS6,直到现在它完成了我想要的一切.

我喜欢最大化可用空间并消除混乱,所以我只想看到源窗口和项目文件列表(这里奇怪地命名为"解决方案资源管理器").因此,当输出窗口出现时,我希望能够在完成它后快速删除它,并且只需一次按键而不是鼠标就可以快速删除它.我曾经能够在VS6中很容易地做到这一点,因为"视图"功能是一个切换,但它似乎在VS2003中,后来这只是一个"on"视图 - 这似乎是一个有用功能的愚蠢删除.

那么有没有人有办法使用单个键在输出窗口(以及可能出现的许多窗口中的任何其他窗口)上执行切换功能?我知道有一个"closetoolwindow"函数,但这必须是一个不同的键,只有当焦点在那个窗口时才有效,所以这很痛苦.

visual-studio-2005 visual-studio output-window

6
推荐指数
3
解决办法
3782
查看次数

什么是RPC回调线程?

我正在使用Visual Studio 2008."线程"窗口显示了我的应用程序的两个RPC回调线程.这些是什么?更具体地说,他们是否应该这样做?

c++ multithreading visual-studio-2008

6
推荐指数
1
解决办法
5251
查看次数