小编Ada*_*iss的帖子

在Linux中调试应用程序

我想在Linux中调试应用程序.该应用程序是用C++创建的.GUI使用QT创建.GUI与静态库链接,可以将其视为应用程序的后端.

我想调试静态库但不知道如何做到这一点.

我尝试使用gdb

gdb GUI
Run Code Online (Sandbox Code Playgroud)

但是我怎么能附上图书馆呢?

有没有人在linux中调试库的经验?

c++ linux debugging gdb

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

提到无效

我有一种偷偷摸摸的感觉,由于编译器,这可能是一个问题.

void SetRenderFunction(void (&newRenderFunction(void)));

这导致GCC宣称我"不能声明对'void'的引用"

现在,我在Windows上的Visual Studio下使用了相同的函数原型(或多或少).在Windows上我有一个不同的函数名称,而不是传递指向一个取消void的函数的指针,它指向我需要的其他一些对象.

如果我使用*而不是&它可以防止这个问题,但是当我尝试传入函数指针时,我会遇到类型转换问题:它试图将它void (*)()转换为void* (*)()

谢谢.

c++ linux gcc function-pointers

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

C#中的加密

我偶然发现了下面的代码片段,它会加密用户的密码.这是我想要做的,因为我不想在没有任何加密的情况下将用户的密码存储在数据库中.

这对我想要实现的目标很有效,但我的问题是:我如何取消加密以确保它们在密码框中输入的值匹配?

// Hash the password details of the user!
private static string CreatePasswordHash(string pwd, string salt)
{
  string saltAndPwd = string.Concat(pwd, salt);
  string hashedPwd = 
    FormsAuthentication.HashPasswordForStoringInConfigFile(saltAndPwd, "SHA1");
  hashedPwd = string.Concat(hashedPwd, salt);
  return hashedPwd;
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼上面的话

string password = CreatePasswordHash(TxtPassword.Text, "1579");
Run Code Online (Sandbox Code Playgroud)

密码然后变成这样: 566DAB495AD0747B49865F9177E430DFAD63CA281579

那么如何取消加密呢?

感谢您的时间.

c# asp.net encryption

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

如何在Java中的任何位置创建目录?

如何使用Java在硬盘上的任何位置创建目录?例如,我想在计算机的主文件夹中创建一个文件夹.如果我使用此代码:

File file = new File("~/test");
if (!file.exists()) {
  try {
    folder.mkdirs();
  } catch(Exception e) {
    JOptionPane.showMessageDialog(null, "There was an error: \n"+e, "Error!", 1);
  }
}
Run Code Online (Sandbox Code Playgroud)

它在我的项目所在的目录中创建一个文件夹名称"〜"和一个名为"test"的文件夹.

如何让Java在我的主文件夹中创建文件夹?

谢谢!

java directory io file

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

指针问题和困惑

这可能很简单,但让我感到困惑.

int x;
int *p = NULL;
int *q = &x;
Run Code Online (Sandbox Code Playgroud)

什么时候会发生

 q = p;   // Address where q points to equals NULL  .
 &x = q;  // I don't think this is possible  .
 *q = 7;  // Value of memory where q is pointing to is 7?  
 *q = &x  // That's just placing the address of x into memory where q points to right?  
 x = NULL;
Run Code Online (Sandbox Code Playgroud)

c null pointers

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

了解这个难题的解决方案

我在编码竞赛中做了一个谜题,我坚持一个问题.基本上我不明白有人能够达到这个解决方案.这个谜题是

Alice和Bob玩下面的游戏.他们选择N号来玩.规则如下:

  1. 鲍勃首先出场,两名球员交替出场.
  2. 在他/她的回合中,玩家可以从N中减去任何小于N的素数(包括1).由此获得的数字是新的N.
  3. 在他/她的回合中无法行动的人将失去游戏.

假设两者都发挥得最好,谁赢了比赛?

给定的解决方案是

int main() {
  long int T, N;
  for(scanf("%ld", &T); T > 0; T--) {
    scanf("%ld", &N);
    if (N % 4 == 1) {
      printf("ALICE wins\n");
    } else {
      printf("BOB wins\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

c puzzle algorithm primes

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

如何在C中进行声音合成?

我正在使用 ST 板生成一个简单的乐器。基本上我有一个传感器,可以检测运动或空间角度,并根据角度产生不同音高和音量的声音。我已经有了音频编解码器的驱动程序,所以我需要做的就是生成声音样本并将样本提供给它。现在我能够从传感器获得角度读数,但具有挑战性的部分是如何产生声音。到目前为止,从谷歌搜索来看,我认为我需要根据传感器的读数生成一个频率和幅度(音量)设置的正弦函数。但是我的编解码器假设采样率为 0f 48KHz,那么我将如何为固定采样率生成具有不同频率的正弦曲线?

到目前为止,我已经这样做了:

 samplingRate = 48000;
 n = 0;  // reset once there is a change in frequency

// this function is called 48000 times a second
int generateSineWave(float frequency, float volume)
{
  int temp = volume*(sin(2*pi*frequency*n);
  n = n + 1; 
  if (n == samplingRate) {
    n = 0;
  }
  if (abs(temp) > MAXVAL) {
    return ERROR_CODE;
  }
  return temp;
}
Run Code Online (Sandbox Code Playgroud)

这似乎有效(我听到了一些声音),但我不确定它是否生成了正确的频率正弦曲线。我听到的声音也不是很悦耳,我将如何产生复杂的音调(例如钢琴中的音调)?我想我的控制变量(空间角度)也需要低通滤波。但除此之外,关于如何产生更令人愉悦的波浪的任何想法?

c audio signal-processing

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

使用三元运算符:var?12-var:0

嘿,非常感谢你的时间!我无法理解音频编码教科书中语句的语法.在一个示例中,存在如下的打印功能

printf("%d semitones up or %d semitones down\n", interval,
       interval ? 12-interval : 0 );
Run Code Online (Sandbox Code Playgroud)

我不理解的部分是条件运算符,或"?".看起来我应该把它读作"如果间隔不等于0,间隔= 12 - 间隔",但这里的语法似乎很奇怪.我习惯于条件运算符是一个更加充实的语句,如:

a = b > c ? b : c;
Run Code Online (Sandbox Code Playgroud)

"如果b大于c,则a = b;否则a = c"

有人可以指出我的任何其他参考,或解释更多关于这种语法?我找不到类似的例子.

c conditional operators

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

在C中连续读取位

我试图将一些代码从Python转换为C.我已经完成了以下部分以外的所有工作.所有变量都被定义为ints.我认为这个问题与指针和地址有关但我无法解决.

for(j=0; j<12; j++)
{
  digitalWrite(CLOCK, 1);
  sleep(0.001);
  bit = digitalRead(DATA_IN);
  sleep(0.001);
  digitalWrite(CLOCK, 0);
  value = bit * 2 ** (12-j-1);  // error
  anip = anip + value;
  printf("j:%i bit:%i value:%i anip:%i", j, bit, value, anip);
}
Run Code Online (Sandbox Code Playgroud)

错误是 invalid type argument of unary ‘*’ (have ‘int’)

c definition

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

即时电子邮件加密/签名

背景: 我继承了一个嵌入式的基于Linux的系统,它包含一个SMTP代理和一些我不得不忍受的古怪约束.它位于SMTP客户端和服务器之间.当SMTP客户端连接时,代理会打开与服务器的连接,并在进行一些即时处理后将客户端的数据传递给服务器.

挑战:我需要在使用标准PKI技术和S/MIME格式(例如,参见RFC2311)的途中签署和/或加密电子邮件.我可以从相应的证书中访问所有必需的公钥.

古怪的约束(请接受它们,因为它们远远超出我的控制范围):

  1. 我无法存储电子邮件; 它必须在运行中处理.
  2. 我可以使用公钥在本地进行加密,但是我无法直接访问私钥,这意味着数字签名必须通过"签名设备"通过9600bps连接完成.
  3. 典型的电子邮件消息大小为数十或数百MB.(电子邮件服务器和收件人可以处理这些大小;唯一的问题是签名时出现无法接受的延迟.)
  4. 任何新代码都应该在C中,但是只要数据从不存储(例如没有临时文件),就可以将数据传输到独立的加密/签名实用程序.
  5. 交货时间为14-21天.

问题:

  1. 我希望能找到一个开放源码的工具或库,会产生相应的MIME头和加密/签名数据的BLOB,但我没有发现,Sourceforge上,谷歌的代码, 您使用一个,你可以推荐?
  2. 我非常希望找到一个RFC,它说可以对100MB的数据进行散列,然后对散列进行签名,因为这样可以缓解9600bps的瓶颈.但同样,没有运气.是否存在与典型电子邮件客户端兼容的行业标准"快捷方式"(RFC?)?

谢谢你的想法.

linux email encryption embedded

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