Я новичок во всем этом, но вот что:

Есть файл Apple, части которого я хотел бы использовать для своего приложения. Он называется BatteryTimeRemaining.c.

http://www.opensource.apple.com/source/PowerManagement/PowerManagement-211/pmconfigd/BatteryTimeRemaining.c

Я хочу иметь возможность использовать в нем некоторые вычисления, но проблема в том, что я не знаю, как его правильно добавить и использовать. Я получаю бесчисленное количество ошибок, например. необъявленный: первое использование этой функции.

Нужно ли мне добавлять все файлы заголовков, которые включены в файл .c? Скомпилировать и добавить?

Большое спасибо, Стюарт

0
Stumf 8 Фев 2010 в 20:08

3 ответа

Лучший ответ

К сожалению, большинство функций, содержащихся в этом файле, специфичны для Mac, поэтому у меня проблемы с использованием его содержимого.

0
Stumf 11 Апр 2010 в 20:08

Да, вам нужно будет включить все файлы заголовков, упомянутые в BatteryTimeRemaining.c. Итак, все эти файлы ...

#include <syslog.h>
#include <unistd.h>
#include <stdlib.h>
#include <notify.h>
#include <mach/mach.h>
#include <mach/mach_port.h>
#include <servers/bootstrap.h>
#include <asl.h>

#include "powermanagementServer.h" // mig generated
#include "BatteryTimeRemaining.h"
#include "SetActive.h"
#include "PrivateLib.h"

Все, что включает в себя треугольная скобка, должны быть системными включаемыми файлами и уже должны быть в вашей системе. Однако указанные включаемые файлы, скорее всего, являются частью того проекта, из которого вы извлекаете BatteryTimeRemaining.c. Вам нужно будет скопировать их из этого проекта в свой собственный.

Вероятно, проще скопировать нужные функции и вставить их в свою базу кода. Несомненно, у вас будут проблемы с зависимостями, но, вероятно, проще создать одну или две функции в вашей системе, чем весь файл. Это довольно долго.

Какую функцию вы хотели использовать именно из BatteryTimeRemaining.c?

1
Rob Segal 8 Фев 2010 в 20:44
Я хотел получить значение capRatio = ((double) b-> maxCap + kSmartBattReserve_mAh) / (double) b-> designCap; Вы знаете, какие файлы и фрагменты кода мне понадобятся? capRatio - это все, что я хочу ...
 – 
Stumf
8 Фев 2010 в 20:57
Возможно, я неправильно понимаю, но если все, что вам нужно, это вычисления в этой строке, тогда он следует формату ... capRatio = (a + b) / c. Вы можете легко заменить a, b и c своими собственными переменными.
 – 
Rob Segal
8 Фев 2010 в 21:11
Да, но где мне взять значения maxCap и designCap? Они должны быть где-то объявлены, и я не могу понять, откуда берутся их ценности и как их получить. По этой причине я подумал, что мне нужно добавить все файлы заголовков и т. Д. Это необходимо или мне не хватает простого способа сделать это?
 – 
Stumf
8 Фев 2010 в 21:22
Однако maxCap и designCap - всего лишь переменные. Эти значения будут другими в вашем коде. Вы просто хотите произвести расчет, верно?
 – 
Rob Segal
8 Фев 2010 в 21:30
Да, я хочу произвести расчет. В таком случае, как мне получить значения, которые будут содержаться в этих двух переменных. Откуда берутся числа для расчета и как их получить, чтобы найти capRatio?
 – 
Stumf
8 Фев 2010 в 21:38

Попробуйте добавить просто

#import "BatteryTimeRemaining.h"

В файл, в котором вы хотите использовать эти функции. Этого может быть достаточно ..

0
Ole Begemann 8 Фев 2010 в 20:45