Хорошо, есть хотя бы одна проблема с вашей функцией atoi.
Вы зацикливаетесь на значении без знака и проверяете, больше ли оно равно нулю, что должно быть недостаточным.
Самым простым исправлением является смещение индекса, т. Е.
unsigned long long int my_atoi(const char str[]) {
unsigned long long int i, j, power, num = 0;
for (i = strlen(str); i != 0; --i) {
power = 1;
for (j = 0; j < strlen(str) - i; ++j) {
power *= 10;
}
num += (str[i-1] - '0') * power;
}
return num;
}
Я знаю, что это не решает проблему напрямую, но пробовали ли вы опубликовать свое приложение (если, конечно, вы используете Visual Studio)? Этот должен заключить все, что вам нужно, в программу установки.
Вы пробовали смотреть журналы слияния? У Сюзанны Кук есть статья об этом здесь .
Еще одна вещь, которую нужно сделать (чтобы минимизировать скрытые ошибки): минимизировать свой метод Main
; Причина в том, что JIT работает для каждого метода, и если он не может JIT Main
, он не может использовать вашу обработку исключений:
/* for winform, you still new [STAThread] here */
static void Main() {
try {
MainCore();
} catch (Exception ex) {
// shout about it
}
}
[MethodImpl(MethodImplOptions.NoInlining)] // usually overkill
static void MainCore() {
// real code
}
Возьмите см. Средство просмотра журнала привязки сборки .
У меня возникла проблема в результате чего приложения WPF не запускались - оказывается, проблема была связана со шрифтами на компьютере пользователя - отключение службы WindowsPresentationFontCache устранило проблему.
Я также нашел в другом месте сообщение со следующей информацией ...
... по неизвестной причине у клиента были неправильные записи в разделах реестра, которые используются для создания кэша «семейства шрифтов по умолчанию», указанного в трассировка стека. Клиента попросили экспортировать записи в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Fonts и отправить файл мне. Было несколько странных имен файлов шрифтов, начинающихся с тире (---). Они были исправлены, и файл реестра был отправлен обратно клиенту для импорта. После этого приложение успешно запустилось!
Также может потребоваться удаление кеша шрифтов согласно инструкциям в этой ссылке http://support.microsoft.com/kb/937135