我在调试模式下编译了以下程序,没有任何错误。我可以从命令行运行.exe文件但是当我尝试调试visual studio中的代码时,异常会从行中抛出
DetectionInternalSettings* internal_settings =
DetectionInternalSettingsFactory::createFromFileSystem(
"C:/data/card_detection_engine.yaml");
在从命令行和调试模式运行的行为不同之前遇到这种情况的任何人。
int main(int argc, char **argv)
{
DetectionSettings settings;
try
{
DetectionInternalSettings* internal_settings =
DetectionInternalSettingsFactory::createFromFileSystem("../data/card_detection_engine.yaml");
}
catch (const MyException &e)
{
fprintf(stderr, "Exception raised: %s\n", e.what().c_str());
return 1;
}
return 0;
}
我也进入了异常细节,这里是ocrcarddetectionengine_sample.exe中0x76E1C41F的第一次机会异常:Microsoft C ++异常:YAML :: TypedBadConversion在内存位置0x003FF0D0。
更多与createFromFileSystem
DetectionInternalSettingsFactory::createFromFileSystem(const std::string &configPath) throw (MyException)
{
return new DetectionInternalSettingsImpl(configPath);
}
struct DetectionInternalSettingsImpl : public DetectionInternalSettings {
DetectionInternalSettingsImpl(const std::string &config_path) {
if (config.ReadFromFilesystem(config_path)) {
throw MyException("Bad configuration path.");
}
}
~DetectionInternalSettingsImpl() { }
Core::Detector::Configuration config;
};
答案 0 :(得分:0)
信任调试模式异常。它正在更彻底地测试代码实际正在做什么,而命令行只是在等待问题发生。
在你的情况下,它们似乎没有发生,可能是因为你没有用指针变量做任何事情。