小编Che*_*eso的帖子

如何从1到50有效地选择几个独特的随机数,不包括x?

我有2个数字这是0和49之间让我们给他们打电话xy.现在我想得到一些不是x或y的其他数字,但也介于0和之间49(我正在使用Objective C,但这更像是一个普遍的理论问题吗?).

我想到的方法是:

 int a;
 int b;
 int c;

 do {
  a = arc4random() % 49;
 } while ((a == x) || (a == y));

 do {
  b = arc4random() % 49;
 } while ((b == x) || (b == y) || (b == a));

 do {
  c = arc4random() % 49;
 } while ((c == x) || (c == y) || (c == a) || (c == b));
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎有点不好,我不知道,我只是想学习成为一名更好的程序员,最佳做法是什么才能做到这一点?

random objective-c

3
推荐指数
2
解决办法
2530
查看次数

nmake:批处理文件可以作为 make 命令块的一部分运行,影响 nmake.exe 进程的环境吗?

我想在 nmake 中如果我这样做:

 example :
        set value=77
        echo %%value%%
Run Code Online (Sandbox Code Playgroud)

结果将在控制台上显示 77。

有没有办法让我调用 .cmd 或 .bat 文件来影响 nmake.exe 进程的环境?假设我将该语句放在set value=77名为“setvalue.cmd”的文件中。然后将 makefile 更改为:

 example :
        setvalue
        echo %%value%%
Run Code Online (Sandbox Code Playgroud)

我得到:

%value%
Run Code Online (Sandbox Code Playgroud)

或者,如果有一种方法可以在命令块中设置宏,那也可以。或者,一种从批处理文件设置宏值的方法,甚至在命令块之外也是如此。

nmake

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

在ICollection <Tuple <T1,T2 >>上实现.Contains()的最简单方法

假设我有一个Dictionary<String, Tuple<T1,T2>>并且我想确定任何字典值是否具有T1的V1.我怎样才能最优雅地做到这一点?

LINQ?

.net c# linq generics collections

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

澄清WINHTTP_STATUS_CALLBACK函数的用法,用于SSL状态代码


我在C中写了一些WinHttp代码.我正在通过SSL发送请求,为了处理SSL错误,我正在注册一个WINHTTP_STATUS_CALLBACK函数,通过调用WinHttpSetStatusCallback并将dwNotificationFlags设置为WINHTTP_CALLBACK_STATUS_SECURE_FAILURE.

WINHTTP_STATUS_CALLBACK的文档说,当使用dwInternetStatus= WINHTTP_CALLBACK_STATUS_SECURE_FAILURE 调用回调时,它表示

从服务器检索安全套接字层(SSL)证书时遇到一个或多个错误.lpvStatusInformation参数包含一个标志.有关更多信息,请参阅lpvStatusInformation的说明.

现在,该lpvStatusInformation参数被输入为LPVOID.但是我从文档中的声明中得出它,在WINHTTP_CALLBACK_STATUS_SECURE_FAILURE的情况下它不被视为指针.

该文件lpvStatusInformation说:

如果dwInternetStatus参数为WINHTTP_CALLBACK_STATUS_SECURE_FAILURE,则此参数可以是以下值之一.

......这些值是这些十六进制值之一:1,2,4,8,10,20,40.(见WinHttp.h)

这对我来说似乎很清楚.我不应该取消引用指针来获取值.所述 lpvStatusInformation保持的十六进制值,而不是一个指针.

我能正确地解释这个吗?


我已经用这种方式编写了代码,并且它在过去也有用.我认为!但是现在我得到的lpvStatusInformation是0x0104f288.这与任何十六进制值都没有任何关系.也不可能通过对可能的值进行OR运算来创建该值(尽管doc在同一个DWORD中没有说明多个状态项).它看起来像是指向我的指针.当我取消引用指针时,我得到0x8,这对应于WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA,这至少是有道理的.


问题是,我应该取消引用该指针吗?

这是回调代码:

void CALLBACK Iirf_WinHttpSslStatusCallback( HINTERNET hInternet,
                                             DWORD_PTR context,
                                             DWORD code,
                                             void * pInfo,
                                             DWORD infoLength)
{
    if (code == WINHTTP_CALLBACK_STATUS_SECURE_FAILURE) {
        ConfigInfo * cfg = (ConfigInfo *) context; // app-specific structure
        DWORD details = (DWORD) pInfo; // do not de-reference??
        CHAR buffer[32];
        CHAR * statusDescription = NULL;

        switch (details) {
            case …
Run Code Online (Sandbox Code Playgroud)

winhttp

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

如果CustomAction中有错误,如何强制WiX卸载

我有以下CustomAction:

<CustomAction Id="ActionName"
              After="InstallFinalize">
  <![CDATA[NOT Installed AND (VSTORUNTIME4="#1")]]>
</CustomAction>
Run Code Online (Sandbox Code Playgroud)

问题是当我返回ActionResult.Failure时,CustomAction中存在一个案例.在这种情况下,安装程序将显示错误消息并说安装失败,但应用程序仍然部分安装(文件已经在Program Files中,应用程序显示在卸载程序中).

我希望如果我返回ActionResult.Failure,那么安装将被中止并卸载.如果自定义操作在默认的Visual Studio安装程序中失败,会发生这种情况,我认为这更有意义.

如果自定义操作失败,有人知道如何触发卸载吗?我是否需要为WiX XML添加额外的东西?

windows-installer custom-action wix

3
推荐指数
2
解决办法
2711
查看次数

在JavaScript中,当完成通过新ActiveXObject创建的对象时,是否需要将其设置为null?

在WSH中运行并创建对象的Javascript程序中,假设是Scripting.FileSystemObject或任意COM对象,我在完成它时是否需要将变量设置为null?例如,我建议这样做:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var fileStream = fso.openTextFile(filename);
fso = null;  // recommended?  necessary? 
... use fileStream here ...
fileStream.Close();
fileStream = null;  // recommended? necessary?
Run Code Online (Sandbox Code Playgroud)

效果不同于让变量超出范围吗?

javascript wsh activexobject jscript

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

在JScript中:我可以枚举通过新ActiveXObject()创建的对象的方法吗?

这对于Eric Lippert或熟悉JScript引擎实现的Microsoft人员来说确实是一个问题.

我可以这样做:

var obj = new ActiveXObject("My.ProgId");
var methods = GetMethodsViaMagic(obj);
Run Code Online (Sandbox Code Playgroud)

(假设COM类型支持IDispatch)

如果是这样,那GetMethodsViaMagic()会是什么样子?


编辑 - 当然,我尝试的第一件事是for...in循环,但这对ActiveX对象上定义的方法和属性不起作用.至少,不是我在.NET中定义并通过暴露的对象ComVisible.


在C#中,我可以像这样定义IDispatch:

 [Guid("00020400-0000-0000-c000-000000000046"),
  InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
 public interface IDispatch
 {
     int GetTypeInfoCount();
     System.Runtime.InteropServices.ComTypes.ITypeInfo
         GetTypeInfo([MarshalAs(UnmanagedType.U4)] int iTInfo,
                     [MarshalAs(UnmanagedType.U4)] int lcid);

     [PreserveSig]
     int GetIDsOfNames(ref Guid riid,
                       [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr)] string[] rgsNames,
                       int cNames,
                       int lcid,
                       [MarshalAs(UnmanagedType.LPArray)] int[] rgDispId);

     [PreserveSig]
     int Invoke(int dispIdMember,
                ref Guid riid,
                [MarshalAs(UnmanagedType.U4)] int lcid,
                [MarshalAs(UnmanagedType.U4)] int dwFlags,
                ref System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams,
                [Out, MarshalAs(UnmanagedType.LPArray)] object[] pVarResult,
                ref System.Runtime.InteropServices.ComTypes.EXCEPINFO …
Run Code Online (Sandbox Code Playgroud)

javascript activexobject

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

在XAML中,VisualStateManager的正确XML命名空间是什么?

我正在尝试重新设置一些ToggleButtons.显然我不能简单地将背景设置为新颜色,因为有一个"控制模板"提供了ToggleButton的视觉行为.所以我需要做的是在XAML中为ToggleButton指定一个替换"ControlTemplate",它提供不同的视觉行为,超出简单的背景颜色.
Q1.它是否正确?


我想从ToggleButton的"默认"controltemplate开始,我从这里抓取,然后修改它.实际上这是Silverlight的默认ControlTemplate,我想,我没有使用Silverlight,我正在使用WPF.但是...... WPF的相应文档页面不包含默认controltemplate的规范.它提供了"a"ControlTemplate,这不是我想要的.
Q2.我不确定我使用Silverlight中的东西是否重要.可以?


在Silverlight示例中,应用于VisualStateManager的vsm的XML名称空间前缀.显然,xml命名空间是

  xmlns:vsm = "clr-namespace:System.Windows;assembly=System.Windows"  
Run Code Online (Sandbox Code Playgroud)

...但在其他地方我读到这个XML命名空间"不再是必需的".

这一切都非常令人困惑.

在Googlespace中,有一些名为"WPF工具包"的引用,我之前已经接触过 - 在WPF V4发布之前将它用于自动完成文本框.我猜测一些WPF工具包的东西被卷入WPF for .NET v4.0,这就是我不再需要指定WPF工具包的原因.
Q3.如果有人能证实这种理解,我会很感激.


好的,现在从ToggleButton的"默认"ControlTemplate开始,我的第一步是编译它,然后再进行任何更改.它没有编译,失败了

c:\ dev ...\ToggleButtonStyle1.xaml(23,14):错误MC3074:标识'VisualStateManager.VisualStateGroups'在XML命名空间中不存在' http://schemas.microsoft.com/winfx/2006/xaml/演讲 '.第23行位置14.

足够清楚.然后我查看了在XAML中指定VisualStateManager的文档.令人困惑的是,它指定了两个xml命名空间,其中一个是我实际使用的命名空间.

在此输入图像描述

Q4嗯,我应该使用哪些?其中一个,我DID使用,它没有用.文档完全不清楚指定TWO XML命名空间的含义.(关上他们的头!)

我在项目文件中引用了PresentationFramework.dll:

  <ItemGroup>
     ....
    <Reference Include="PresentationFramework" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

我这里没有使用Visual Studio; 我正在使用文本编辑器.我想了解它是如何工作的,而不是要推动的按钮.

感谢您提供的任何帮助.


只是一个评论 - 这似乎非常复杂.我想要做的就是在ToggleButton打开时更改它的颜色.这真的不应该是这么复杂.

wpf xaml visualstatemanager

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

为什么Python教程说列表推导比map()更灵活?

Python教程中,它说:

在此输入图像描述

为什么?我不认为理解是如何"更灵活"的.在我看来,只是语法上的差异.我可以轻松地做到:

def my_round(i):
    return str(round(355/113.0, i))

a = map(my_round, range(1, 6))
Run Code Online (Sandbox Code Playgroud)

我不认为map()这里缺乏灵活性.

谁能详细说明?

python list-comprehension

3
推荐指数
2
解决办法
223
查看次数

WCF是控制台应用程序还是在IIS下运行是真的吗?

是否真的WCF作为控制台应用程序运行,您必须在更传统的IIS应用程序(如网站或Web服务)下手动启动或运行

wcf

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