小编Jim*_*ell的帖子

在C#中计算ComboBox DropDownWidth

在我的应用程序中,ComboBox被调整大小,因此它更小.如何重新计算DropDownWidth属性?我知道如何设置它,但我更喜欢计算适当的宽度,因为它的内容会发生变化.首先,我正在考虑这些方面的事情:

int iMaxLen = 0;
foreach item in comboBoxList
{
   iMaxLen = (item.Length > iMaxLen) ? item.Length : iMaxLen;
}
comboBoxList.DropDownWidth = iMaxLen;
Run Code Online (Sandbox Code Playgroud)

谢谢.

c# combobox winforms drop-down-menu

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

在C#应用程序的C#DLL中链接函数

从C#应用程序链接到C#DLL中的函数的正确方法是什么?

这是我的DLL看起来的样子:

namespace WMIQuery_Namespace
{
    public class WMIQuery
    {
        public static string GetPortName()
        {
            /* Does some stuff returning valid port name. */

            return string.Empty;
        }

        public static int ScanForAdapters()
        {
            /* Does some stuff returning valid adapter index. */

            return _index = -1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我的应用程序中的界面的外观:

namespace MyApp_Namespace
{
    class MyApp_Class
    {
        internal static class WMIQuery
        {
            [DllImport("WMIQuery.dll")]
            internal static extern string GetPortName();

            [DllImport("WMIQuery.dll")]
            internal static extern int ScanForAdapters();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

一切都编译没有任何错误或警告,但当我尝试从我的应用程序调用这些函数时,抛出此异常:

"无法在DLL'WMIQuery.dll'中找到名为'ScanForAdapters'的入口点."

我究竟做错了什么?我知道我可以添加WMIQuery作为参考,但我需要将其链接为非托管DLL.谢谢.

.net c# dll

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

创建Windows和线程 - C++

当使用新窗口创建时CreateEx,其代码是在其自己的线程中执行还是在其父线程(即执行其实例化代码的线程)中执行?谢谢.

c++ windows mfc multithreading visual-studio-2008

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

自由分配的内存生成异常 - C++

我的应用程序中有一个函数,其中分配内存以格式化端口名称. CreateFile被叫打开港口.在函数结束时free调用以尝试释放分配的内存.

DWORD CSerialPort::Open( wchar_t * port )
{
    DCB dcb = {0};
    LPTHREAD_START_ROUTINE pThreadStart;
    void * pvThreadData = NULL;
    wchar_t * pwcPortName = NULL;
    DWORD dwRetVal = ERROR_SUCCESS;

    /* Validate parameters. */

    pwcPortName = (wchar_t *)malloc( wcslen( port ) + 6 );

    if ( pwcPortName == NULL )
    {
        TRACE(_T("CSerialPort::Open : Failed to allocate memory for formatted serial port name.\r\n\tError: %d\r\n\tFile: %s\r\n\tLine: %d\r\n"), ERROR_NOT_ENOUGH_MEMORY, __WFILE__, __LINE__);
        return ERROR_NOT_ENOUGH_MEMORY;
    }

    memcpy( pwcPortName, L"\\\\.\\", 4 * 2 ); …
Run Code Online (Sandbox Code Playgroud)

c++ malloc free exception visual-studio-2008

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

将C++应用程序从XP移植到Vista/7

我有一个我为Windows XP编写的C++应用程序,我想将其移植到Windows Vista/7上使用.它使用一些MFC(用于串行I/O)和ATL(用于WMI),但它主要使用良好的'老式Windows API.在移植我的应用程序时,我应该记住哪些东西?谢谢.

c++ porting windows-xp windows-vista windows-7

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

Windows上的驱动程序认证

我正在开发一个在Windows上使用的设备驱动程序.驱动程序是否必须通过Microsoft认证才能安装?我应该注意哪些陷阱?

这适用于Windows XP,Windows Vista和Windows 7.

windows drivers

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

使用`cout`在控制台上查看二进制数据

我正在编写测试应用程序,我希望尽可能简单.我记得有一种方法可以用coutASCII格式将二进制数据打印到控制台.例如:

int myVar = 0x1234;
cout << "My variable: 0x" << myVar << endl;
Run Code Online (Sandbox Code Playgroud)

希望这会打印到控制台这样的事情:

我的变量:0x1234

有谁知道如何正确修改ios(?)标志以ASCII格式将不可读数据打印到控制台?谢谢.

c++ console-application visual-studio-2008

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

在更新时将CURRENT_TIMESTAMP添加到MySQL记录

我正在更新MySQL记录:

mysql_query("UPDATE nodes SET text='". $text . ..... "', datealtered='CURRENT_TIMESTAMP', ..... '") or die(mysql_error());    
Run Code Online (Sandbox Code Playgroud)

我将PHPMyAdmin中datealtered的类型设置为CURRENT_TIMESTAMP.所有其他字段都会更新,但日期永远不会更新.我究竟做错了什么?

php mysql phpmyadmin

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

Windows驱动程序签名需要什么证书?

最近(64位)版本Windows的驱动程序必须在加载之前进行签名.哪些证书颁发者可以提供适合此的证书?

windows 64-bit driver certificate driver-signing

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

Gcc Make:没有规则来创建目标。为什么?

我有这个makefile。

IDIR=-I../inc/pvt -I../inc/pub
CC=gcc
CFLAGS=-I$(IDIR)

ODIR=obj
LDIR =../lib

_DEPS = teos_config.h teos_linkedlist.h teos_error.h teos_event.h teos_task.h
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))

_OBJ = teos_event.o teos_init.o teos_linkedlist.o teos_log.o teos_main.o teos_mem.o teos_task.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))

$(ODIR)/%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)

teosmake: $(OBJ)
    gcc -o $@ $^ $(CFLAGS)
Run Code Online (Sandbox Code Playgroud)

为什么它给我这个错误,我该如何修复它?

make -C src
make[1]: Entering directory 'C:/Users/<user>/git/teos/src'
make[1]: *** No rule to make target 'obj/teos_event.o', needed by 'teosmake'.  S
top.
make[1]: Leaving directory 'C:/Users/<user>/git/teos/src'
makefile:6: recipe for target 'teos_root' failed
make: …
Run Code Online (Sandbox Code Playgroud)

gcc makefile build-error

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