问题列表 - 第39974页

什么是将结构写入C中的文件的可移植方式?

我需要以可struct移植的方式将C序列化为文件,以便我可以在其他机器上读取该文件,并且可以保证我将获得与我放入的相同的内容.

文件格式无关紧要,只要它相当紧凑(如果不是为了便携性问题,写出结构的内存中表示将是理想的.)

有一种干净的方法可以轻松实现这一目标吗?

c serialization

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

从一个用户导入xml字符串的DSA密钥失败.权限?安装破损?坏KSP?

用户最近在使用我的软件时报告了一个奇怪的错误.我使用DSA签名来验证许可证.当软件导入公钥以验证签名时,DSA提供程序的FromXmlString方法将抛出CryptographicException,其描述为" 密钥无法在指定状态下使用 ".

从System.Security.Cryptography.Utils.CreateProvHandle调用的_OpenCSP方法似乎返回NTE_BAD_KEY_STATE(0x8009000b).这是第一次有人向我报告此错误,并且该代码多年来没有变化.

造成这种情况的可能原因是什么?屏蔽权限错误?CAPI安装破损?被.net信任/权限设置阻止?密钥存储提供商存储的垃圾,还是KSP向cryptoapi返回意外的东西?

我已经搜索了错误代码/说明/等,但没有找到任何真正的答案,可能会导致这个...

失败的代码的隔离版本在这里:http: //forum.huagati.com/getattachment.ashx?fileid = 78

using System;
using System.Security.Cryptography;
using System.Reflection;

public class Test
{
  public static void Main()
  {
    try
    {
      string key = "<DSAKeyValue><P>wrjxUnfKvH/1s5cbZ48vuhTjflRT5PjOFnr9GeUPZSIoZhYATYtME4JRKrXBtSkyioRNtE1xgghbGAyvAJ5jOWw88fLBF+P1ilsZyq72G1YcbB+co8ImQhAbWKmdCicO9/66Th2MB+7kms/oY3NaCzKEuR7J3b23dGrFpp4ccMM=</P><Q>xmxoSErIJCth91A3dSMjC6yQCu8=</Q><G>bwOLeEaoJHwSiC3i3qk9symlG/9kfzcgrkhRSWHqWhyPAfzqdV1KxJboMpeRoMoFr2+RqqKHgcdbzOypmTeN4QI/qh4nSsl5iEfVerarBOrFuRdOVcJO0d8WE233XQznd1K66nXa5L8d9SNZrM6umZ1YuBjhVsTFdPlIXKfGYhk=</G><Y>wZnEEdMUsF3U3NBQ8ebWHPOp37QRfiBn+7h5runN3YDee1e9bC7JbJf+Uq0eQmU8zDs+avEgD68NpxTKEHGr4nQ3rW6qqacj5SDbwO7nI6eN3wWrVhvrWcQm0tUO93m64HsEJREohfoL+LjqgrqIjZVT4D1KXE+k/iAb6WKAsIA=</Y><J>+zmcCCNm2kn1EXH9T45UcownEe7JH+gl3Lw2lhVzXuX/dYp5sGCA2lK119iQ+m3ogjOuwABATCVFLo6J66DsSlMd0I8WSD5WKPvypQ7QjY0Iv71J2N0FW0ZXpMlk/CE8zq4Z7arM1N564mNe</J><Seed>QDrZrUFowquY5Uay8YtUFOXnv28=</Seed><PgenCounter>Gg==</PgenCounter></DSAKeyValue>";

      DSACryptoServiceProvider csp2 = new DSACryptoServiceProvider();
      csp2.FromXmlString(key);

      Console.WriteLine("Success!");
    }
    catch (Exception ex)
    {
      int hResult = 0;
      try
      {
          PropertyInfo pi = typeof(Exception).GetProperty("HResult", BindingFlags.NonPublic | BindingFlags.Instance);
          hResult = (int)pi.GetValue(ex, null);
      }
      catch (Exception ex2)
      {
          Console.WriteLine("HResult lookup failed: " + ex2.ToString());
      }
      Console.WriteLine("Initializing CSP …
Run Code Online (Sandbox Code Playgroud)

.net c# cryptography cryptoapi dsa

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

在C#中寻找一个优雅的"不要再显示我这个对话"对话框

我一直在寻找一个带有复选框的对话框,"在C#中再次给我看这个对话框".

我用谷歌搜索并搜索了很多,但我找不到一个优雅的解决方案.

该对话框应该与本机MessageBox.Show类似,但是使用新的属性值(bool值)返回给调用者.

谢谢.

c# dialog showdialog

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

什么是显示带有VBA超时值的消息框的最佳方法?

这个问题是关于下面列出的最佳解决方法,或者您知道的另一个问题.

这是问题的背景,它来自这样的代码......

Set scriptshell = CreateObject("wscript.shell")
    Const TIMEOUT_IN_SECS = 60
    Select Case scriptshell.popup("Yes or No? leaving this window for 1 min is the same as clicking Yes.", TIMEOUT_IN_SECS, "popup window", vbYesNo + vbQuestion)
        Case vbYes
            Call MethodFoo
        Case -1
            Call MethodFoo
    End Select
Run Code Online (Sandbox Code Playgroud)

这是一种显示带有VBA或VB6超时的消息框的简单方法.问题是特别是在Excel 2007中(显然有时也会出现在Internet Explorer中),弹出窗口将意外地不会超时,而是等待用户输入.这个问题很难调试,因为它偶尔会发生,我不知道重现问题的步骤.到目前为止,我认为它是Office模式对话框的一个问题,并且excel不能识别超时已过期.
请看这里... http://social.technet.microsoft.com/Forums/en-US/ITCG/thread/251143a6-e4ea-4359-b821-34877ddf91fb/

我在此处列出了此问题的解决方法.
A.使用Win32 API调用

Declare Function MessageBoxTimeout Lib "user32.dll" Alias "MessageBoxTimeoutA" ( _
ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal uType As Long, _ …
Run Code Online (Sandbox Code Playgroud)

excel winapi vba wsh messagebox

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

处理csv文件fgetcsv&str_getcsv?

我有一个三部分问题是fgetcsvstr_getcsv更好,有没有办法只允许.csv文件类型显示在文件上传对话框中?最后我应该/我需要使用ini_set('auto_detect_line_endings',true);

<?php
if (isset($_POST['submit'])) {
    //$filename=$_POST['filename'];
    $filename = file_get_contents($_FILES['uploadedfile']['tmp_name']);
    $handle = fopen("$filename", "r");
    while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {

        $import = "INSERT into kmmb_member1(no_ahli,no_pin,nama,no_ic_baru,no_ic_lama) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')";
        mysql_query($import) or die(mysql_error());
    }
    fclose($handle);
    print "Import done";
} else {

    print "<form action='import.php' method='post'>";
    print "Type file name to import:<br />";
    // print "<input type='text' name='filename' size='20' /><br />";
    print "Select csv file: <input name='uploadedfile' type='file' /><br />";
    print "<input type='submit' name='submit' value='submit' /></form>";
}
?>
Run Code Online (Sandbox Code Playgroud)

php

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

将类型传递给泛型类

我正在循环通过EF的ObjectStateEntry,所以我可以访问enrty.Entity,我正在poco类上做一些静态验证,我也想做业务规则验证所以我创建了一个库来做到这一点,现在我有这一行期望类型excample Customer的代码..

 MyEntityValidator<needtypehere> ev = new MyEntityValidator<needtyehere>(new EntityValidator());
Run Code Online (Sandbox Code Playgroud)

所以我有问题传递类型,我在'needtypehere'.我尝试了entry.Entity.GetType()但没有工作.这又是该方法的标志

GetErrors(this ObjectStateEntry entry)
Run Code Online (Sandbox Code Playgroud)

c# generics entity-framework

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

NSString componentsSeparatedByString:返回自动释放的数组吗?

在下面的方法中,我不确定为什么释放其中一个数组会导致异常.我能看到的唯一原因是,如果componentsSeparatedByString返回一个自动释放的数组,但我看不出文档中提到它确实存在.

-(void)addRow:(NSString *)stringWithNumbers;
{

    NSArray *numbers = [stringWithNumbers componentsSeparatedByString:@" "];
    NSMutableArray *row = [[NSMutableArray alloc] initWithCapacity:[numbers count]];
    for (NSString *number in numbers) {
        Number *n = [[Number alloc] initWithNumber:number];
        [row addObject:n];
        [n release];
    }
    [rows addObject:row];
    [row release];
//    [numbers release];  <-- leads to exception
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以确认阵列是否已自动释放?如果是这样,我怎么知道/为什么我应该知道?
是否可以通过代码检查对象的任何一个实例是否自动释放?

objective-c autorelease nsstring

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

有些程序不接受输入文件的进程替换吗?

我正在尝试将进程替换用于程序的输入文件,但它无法正常工作.是因为某些程序不允许输入文件的进程替换吗?

以下不起作用:

bash -c "cat meaningless_name"
    >sequence1
    gattacagattacagattacagattacagattacagattacagattacagattaca
    >sequence2
    gattacagattacagattacagattacagattacagattacagattacagattaca
bash -c "clustalw -align -infile=<(cat meaningless_name) -outfile=output_alignment.aln -newtree=output_tree.dnd"
    (Less verbose output, finishing with:
    No sequences in file. No alignment!
Run Code Online (Sandbox Code Playgroud)

但以下控件确实有效:

bash -c "clustalw -align -infile=meaningless_name -outfile=output_alignment.aln -newtree=output_tree.dnd"
    (Verbose output, finishing with:
    CLUSTAL-Alignment file created  [output_alignment.aln]
bash -c "cat <(cat meaningless_name) > meaningless_name2"
diff meaningless_name meaningless_name2
    (No output: the two files are the same)
bash -c "clustalw -align -infile=meaningless_name2 -outfile=output_alignment.aln -newtree=output_tree.dnd"
    (Verbose output, finishing with:
    CLUSTAL-Alignment file created  [output_alignment.aln]
Run Code Online (Sandbox Code Playgroud)

这表明进程替换本身有效,但clustalw程序本身不喜欢进程替换 - …

unix bash ipc process-substitution

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

外部声明中的警告

我在temp2.​​h中声明了一个变量i,它只 extern i; 包含一行上面的行,并创建了另一个文件temp3.c

 #include<stdio.h>
#include<temp2.h>
int main ()
{
extern i;
i=6;
printf("The i is %d",i);
}
Run Code Online (Sandbox Code Playgroud)

当我在上面编译时, cc -I ./ temp3.c 我得到了以下错误

 /tmp/ccJcwZyy.o: In function `main':
temp3.c:(.text+0x6): undefined reference to `i'
temp3.c:(.text+0x10): undefined reference to `i'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我在上面的temp3.c中声明了extern,正如我在上面的文章中提到的那样,KR第33页说.我为temp3.c尝试了另一种方法,使用相同的头文件temp2.​​h

 #include<stdio.h>
#include<temp2.h>
int main ()
{

i=6;
printf("The i is %d",i);
}
Run Code Online (Sandbox Code Playgroud)

并编译它 cc -I ./ temp3.c 并得到以下错误

/tmp/ccZZyGsL.o: In function `main':
temp3.c:(.text+0x6): undefined reference to `i'
temp3.c:(.text+0x10): undefined reference to `i'
collect2: ld returned …
Run Code Online (Sandbox Code Playgroud)

c

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

C#中的可变字符串和不可变字符串有什么区别?

C#中的可变字符串和不可变字符串有什么区别?

c# string

188
推荐指数
8
解决办法
22万
查看次数