小编Dar*_*usz的帖子

即使函数存在char*,仍然存在未解析的外部符号错误

我在Visual Studio中的一个解决方案中有两个项目.其中一个项目(应用程序)依赖于另一个(库).该库有一个方法:

int foo(_TCHAR*);
Run Code Online (Sandbox Code Playgroud)

它在标头中正确定义并实现.在应用程序中,我调用这样的方法:

int bar(_TCHAR* str) {
  return foo(str);
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

错误LNK2001:未解析的外部符号"public:int __cdecl foo(char*)"

方法签名完全相同,并且使用相同类型的变量.

c++ linker linker-errors visual-studio

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

std :: string到uint64_t

如何将a转换std::stringuint64_t?如果字符串不包含一个纯粹的表示形式,我也希望抛出该函数uint64_t.例如,这些转换应抛出:

"NO: 9889"
"9889L"
"9889U"
"1e+22"
Run Code Online (Sandbox Code Playgroud)

或用另一种方式表明它们不是纯粹的代表.我正在使用C++ 98和boost(包括boost::regex).

c++ boost c++98

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

任务中不兼容的类型c

我在头文件中定义了以下结构,

struct nl_packet {
      int seq;
      FRAMETYPE type;
      CnetAddr dest;
      CnetAddr src;
      uint32_t checksum;
      size_t length;
      char data[NL_MAXDATA];
    };


struct seq_Info  {

   int seqNum;
   size_t length;
   char data[NL_MAXDATA];

};

struct msg_Received {

   CnetAddr src;
   struct seq_Info seqInfo[BUFSIZ];
   int lastReceived;

};
Run Code Online (Sandbox Code Playgroud)

然后在另一个文件中,我有以下赋值,"赋值错误中的不兼容类型",

msgRec[i].seqInfo[j].data = packet.data;
Run Code Online (Sandbox Code Playgroud)

我在同一个方法中有其他类似的声明,但它们工作得非常好,

msgRec[i].seqInfo[j].seqNum = packet.seq;
msgRec[i].seqInfo[j].length = packet.length;
Run Code Online (Sandbox Code Playgroud)

即使两者都有,nl_packet struct和seq_Info结构中的数据字段具有相同的类型,那么这个错误会出现吗?

提前致谢

c arrays copying incompatibletypeerror

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

是否需要实现接口方法

我有一个如下界面.

我在Eclipse中获得了这个默认代码.困惑,为什么"@Override"属性即将到来?

是否有任何其他TOP级别的默认界面可用,我们已经声明了所有这些方法,后来在Object类中实现了?

  public interface IRecord {
        @Override
        public String toString();

        public void showName(String name);
    }
Run Code Online (Sandbox Code Playgroud)

它的一个实现如下

public class Record implements IRecord{

    @Override
    public void showName(String name) {
          //Doing something
    }
}
Run Code Online (Sandbox Code Playgroud)

它正如预期的那样得到很好的遵守,但我不知道为什么它不要求我实现toString()方法的实现?

它在Object类中,但是Object类没有实现我的接口.

java overriding interface

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

openssl:我如何从模数中获取公钥

我使用openssl生成一对密钥:

shell> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/mike/.ssh/id_rsa): /path/to/test_rsa
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /path/to/test_rsa.
Your public key has been saved in /path/to/test_rsa.pub.
Run Code Online (Sandbox Code Playgroud)

然后,我从私钥生成模数:

shell> openssl rsa -in /path/to/test_rsa -noout -modulus > /path/to/modulus.txt
Run Code Online (Sandbox Code Playgroud)

现在,有没有办法从模数中获取test_rsa.pub(公钥)?

php openssl rsa modulus

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

一个函数内的C++函数?

嗨,我正在研究一个代码,并通过这个c ++语法.我想知道这究竟意味着什么.

function1(param1).function2(param2);
Run Code Online (Sandbox Code Playgroud)

这是否代表函数中的函数?或者类似的东西在第一个结束时触发此功能?

c++ oop methods function

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

将double值格式化为1位小数

我是C++的新手,正在努力学习一段代码.我在对话框中有一个静态文本,我想在按钮点击时更新.

double num = 4.7;
std::string str = (boost::lexical_cast<std::string>(num));
test.SetWindowTextA(str.c_str());
//test is the Static text variable
Run Code Online (Sandbox Code Playgroud)

但是,文本显示为4.70000000000002.我如何使它看起来像4.7.

我用过.c_str(),否则cannot convert parameter 1 from 'std::string' to 'LPCTSTR'会抛出错误.

c++ string boost visual-c++

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

Stream从一个创建两个对象并进一步处理

我需要基于单个对象创建两个对象以进一步流式处理和处理.如何使用流来实现这一目标?

伪代码可能如下所示:

stream.stream().
    map(p -> new Object(p.getParam1()) <AND> new Object(p.getParam2()) ).
    collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

Jsoup.clean() 保持未关闭并打开标签

以下代码将此文本: 替换<br /><br>

String removeDisallowedTags(String textToEscape) {
    Whitelist whitelist = Whitelist.none();
    whitelist.addTags(new String[] { "b", "br", "font" });

    String safe = Jsoup.clean(textToEscape, whitelist);
    return safe;
}
Run Code Online (Sandbox Code Playgroud)

为什么?

html java xml jsoup

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

JVM 在堆栈上分配变量的规则是什么?

64 位机器上的对象Long可能需要 24 个字节:12 个字节用于对象头,8 个字节用于长值本身,另外 4 个字节用于填充。我很容易用谷歌搜索到这个,但我在JVM 规范中找不到它。

我在任何地方都找不到什么是放在堆栈上的原始变量类型大小。它们有衬垫吗?规则是什么?例如,以下方法中变量的堆栈内存占用是多少:

class MemoryTest{
  static void foo() {
    int anInt=0;
    long aLong=0L;
    byte aByte=0;
    short aShort=0;
    // some code that uses the vars above
  }
}
Run Code Online (Sandbox Code Playgroud)

java memory stack jvm

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