小编ant*_*009的帖子

C#类对象

我有一个我正在下面使用的课程.我正在将此类用于我的Windows应用程序.但是,当我从我的应用程序ReadInConfig()调用该方法时,它成功读取并填充数据表,并分配_sip_ip地址.

在我的Windows应用程序中,我有以下内容.但是,它没有给我分配它的sip_ip.

ConfigSIP readIn = new ConfigSIP();
readIn.ReadInConfig();
string sip_ip = readIn.sip_ip(); // Get nothing here.
Run Code Online (Sandbox Code Playgroud)

我在想,因为数据表分配的_sip_ip是一个不同的对象,而不是执行此操作readIn.sip_ip();

有什么办法可以解决这个问题吗?

非常感谢,

public class ConfigSIP
{
    private string _sip_ip;

        // Fill the data table and assign the sip ip.
    public void ReadInConfig()
    {
        DataTable dt = new DataTable("Admin");
        dt.ReadXmlSchema(@"C:\Config.xml");
        dt.ReadXml(@"C:\Config.xml");

        _sip_ip = dt.Rows[0]["Sip_ip"].ToString();
    }

        // Return the sip ip address.
    public string sip_ip()
    {
        return _sip_ip;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# class object

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

'Bad Data'使用DES3解密消息时

C#2008

我使用以下代码来加密和加密邮件.但是,当我尝试解密时,我收到"错误数据"错误.

我的代码下面有什么问题吗?

非常感谢,

public string encryptText(string text)
    {
        try
        {
            TripleDESCryptoServiceProvider encrypt = new TripleDESCryptoServiceProvider();

            encrypt.Key = new byte[] { 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 144, 89, 55, 34, 21, 13, 8, 5, 3, 2, 1, 0 };
            encrypt.IV = new byte[] { 1, 2, 3, 5, 8, 13, 21, 34 };
            byte[] byteText = Encoding.Unicode.GetBytes(text);

            ICryptoTransform encryptor = encrypt.CreateEncryptor();

            byte[] encryptedText = encryptor.TransformFinalBlock(byteText, 0, byteText.Length);

            return Encoding.Unicode.GetString(encryptedText);
        }
        catch (Exception ex) …
Run Code Online (Sandbox Code Playgroud)

c# encryption

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

在C中释放内存时出错

我写了一个练习指针和分配内存的问题.

但是,当我释放内存时,我正在获得堆栈转储.我在正确的地方解放了吗?我的程序还有什么问题可以使它不安全吗?

void display_names(char **names_to_display, char **output);

int main(void)
{
    char *names[] = {"Luke", "John", "Peter", 0};
    char **my_names = names;
    char *new_output[1024] = {0};
    size_t i = 0;

    // Print the ordinal names
    while(*my_names)
    {
        printf("Name: %s\n", *my_names++);
    }

    my_names = names; /* Reset */
    display_names(my_names, new_output);

    // Print the updated names
    while(new_output[i])
    {
        printf("Full names: %s\n", new_output[i]);
        i++;
    }

    // Free allocated memory
    free(new_output);

    getchar();

    return 0;
}

void display_names(char **names_to_display, char **output)
{
    while(*names_to_display)
    {   
        *output = …
Run Code Online (Sandbox Code Playgroud)

c free

0
推荐指数
3
解决办法
9513
查看次数

显示标准错误消息

我只是测试一个我想测试的小程序.

我想知道是否有办法使用stderr来显示实际的错误.

例如,如果文件不存在.我可以显示标准错误吗?

我正在使用stderr,我想通过使用它,我可以显示实际错误是什么.

例如.如果文件没有退出.是否有任何错误发送到可以显示的stderr?

我希望我对自己的问题很清楚.

非常感谢任何建议.

#include <stdio.h>
#include <string.h>

int main(void)
{
    char buffer[100] = {'\0'}; /* declare and clean buffer */

    FILE *fp;
    int len_of_buff = 0;

    fp = fopen("licenseURL.txt", "r");

    if(fp == NULL)
    {
        fprintf(stderr, "There was a error opening a file ???");

        exit(1);
    }

    fgets(buffer, sizeof(buffer), fp);
    len_of_buff = strlen(buffer);
    buffer[len_of_buff + 1] = '\0'; /* null terminate */
    printf("The url is: [ %s ]\n", buffer);

    fclose(fp);
}
Run Code Online (Sandbox Code Playgroud)

c stderr

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

初始化结构和嵌套结构

GCC

我刚刚回到c编程,我只是练习结构.但是,我有一个嵌套结构,我想从另一个初始化结构填充.但是,我不认为我的技术是正确的方法.

任何建议都是最有帮助的,

#include <stdio.h>

typedef struct
{
  char name[20];
  int age;

} NAME_AGE_STRUCT;

typedef struct 
{
  int ID;
  NAME_AGE_STRUCT info[];

} DETAILS_STRUCT;


int main(void)
{
  DETAILS_STRUCT details;
  NAME_AGE_STRUCT extra_details [] = {
    { "john", 34 },
    { "peter", 44 },
  };

  printf("=== Start program\n");

  details.ID = 2;
  details.info = extra_details;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c

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

#define成功或失败

我正在使用具有成功宏的API,即"NT_SUCCESS".然而,他们没有一个失败.所以通常我必须这样做.

if(something failed)
    return !NT_SUCCESS;
else
   return NT_SUCCESS;
Run Code Online (Sandbox Code Playgroud)

拥有!NT_SUCCESS我不认为是非常可读的.所以我决定这样做:

#define SUCCESS NT_SUCCESS
#define FAILURE (!NT_SUCCESS)
Run Code Online (Sandbox Code Playgroud)

编辑=============================

#define ENT_NOERR 0 /* No error */ 
#define NT_SUCCESS ENT_NOERR /* synonym of ENT_NOERR */ 
Run Code Online (Sandbox Code Playgroud)

这就是NT_SUCCESS的声明方式,我做的也是可以的.

那可以吗?

非常感谢任何建议,

c

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

使用iswitchb忽略某些缓冲区

GNU Emacs 23.1

我正在使用iswitchb.但是,当我按下时,C-x b我会得到一个缓冲区列表.但是,我不想显示一个像scratch,Messages,GNU Emacs等.只是我自己打开的缓冲区.

所以我正在寻找一种忽略这些缓冲区的方法.这就是我的配置.但是,它不会忽略我不想要的缓冲区.我做错了什么吗?

;; Setup iswitchb to select different buffers, ignore buffers to reduce list
(iswitchb-mode 1)
(setq iswitchb-buffer-ignore '("*scratch*"))
(setq iswitchb-buffer-ignore '("*Messages*"))
(setq iswitchb-buffer-ignore '("*GNU Emacs*"))
(setq iswitchb-buffer-ignore '("*compilation*"))
Run Code Online (Sandbox Code Playgroud)

非常感谢任何建议,

emacs iswitchb-mode

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

取消引用指向不完整类型的指针

gcc 4.4.4 c89

不知道为什么我收到此错误.

在我的头文件中,我有以下内容

handle.h

typedef struct Handle_t Handle
Run Code Online (Sandbox Code Playgroud)

在我的实现文件中

handle.c

struct Handle {
    size_t id;
    char *name;
};

Handle* create_handle(size_t id)
{
    Handle *hdev = NULL;
    hdev = malloc(sizeof(*hdev)); /* Error */
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

非常感谢任何建议,

c pointers

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

为结构分配内存

gcc 4.4.4 c89

我不断得到一个"不能解除对不完整类型的解释".

但是,我确信我的结构类型完整.我返回Network_t实例,它是指向已分配内存的指针.我应该能够解除那种记忆.

非常感谢任何建议,

我在头文件中有这个:driver.h

typedef struct Network_t Network_t;
Network_t* create_network(int id);
Run Code Online (Sandbox Code Playgroud)

实现文件driver.c

#include "driver.h"

struct Network_t {
    int id;
};

Network_t* create_network(int id)
{
    Network_t *network = malloc(sizeof *network);

    if(network) {
        network->id = id;
    }
    return network;
}
Run Code Online (Sandbox Code Playgroud)

在我的main.c

#include "driver.h"

Network_t *network = NULL;
network = create_network(1);
printf("Network ID: [ %d ]\n", network->id); /* Cannot dereference pointer to incomplete type */
Run Code Online (Sandbox Code Playgroud)

c malloc pointers

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

使用#define定义和#if定义以查看它是否已定义

gcc 4.4.4 c89

我试图定义一些东西.如果它被定义我想做某事,否则我想做一些不同的事情.

#define PARSE_STRING
    for(i = 0; i < NUMBER_OF_STRINGS; i++) {
#if defined (PARSE_STING)
    /* run code for parsing the strings */
#else
    /* run code that doesn't parse the strings
    }
#endif
Run Code Online (Sandbox Code Playgroud)

当我在我的函数中尝试上面的代码时,我似乎在我的代码中得到了其他错误.但是,如果我注释掉#define PARSE_STRING它编译好了.我只是想知道我需要#define PARSE_STRING吗?

非常感谢任何建议,

======编辑更新的解决方案

相反,这样做会更好吗?

#define PARSE_STRING
    for(i = 0; i < NUMBER_OF_STRINGS; i++) {
#if defined (PARSE_STRING)
    /* run code for parsing the strings */
#elif defined (NO_PARSE_STRING)
    /* run code that doesn't parse the strings
#endif
    }
Run Code Online (Sandbox Code Playgroud)

c macros gcc c-preprocessor

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

标签 统计

c ×7

c# ×2

pointers ×2

c-preprocessor ×1

class ×1

emacs ×1

encryption ×1

free ×1

gcc ×1

iswitchb-mode ×1

macros ×1

malloc ×1

object ×1

stderr ×1