OneWire, again

Hello,
I am a relative newcomer to Arduino, but after Blink, decided to go for OneWire as I have some potential applications for this technology.
There are many and varied examples of OneWire code out there, including examples in Arduino 0022. My problem has been to find a published sketch that works out of the box. I downloaded the DallasTemp and Onewire libraries from sites like PJRC and milesburton, and finally got some of these to work, for one device at least. After shuffling around some of these published libraries, it was a disappointment to find that the sketches that did work, suddenly didn't, and came up with errors like "OneWire does not name a type" or similar. I am coming to the conclusion that there are several versions of DallasTemp and OneWire libraries around, and if the wrong one is in the 0022 library folder, then nothing works.
Is there a universal solution to this i.e. a set of published libraries that work with all the published sketches, or is there a way of organising the libraries so that the right sketch finds the right libraries?
I want to persevere with OneWire, but at this stage I am still reluctant to mess about with library names - I know that there is version 2 of OneWire, so if I renamed this library OneWire2.h and called it as OneWire2 from the sketch. would this work?
A typical example is the OneWire Doghouse sketch from Hacktronics, which doesn't seem to work even when using their versions of DallasTemp and OneWire libraries.
Please forgive any misspellings or naivety, and at this stage, suggestions like use LM35 are not an option as I need the analogues for something else.

Thanks

The OneWire thermometer devices are easy to talk to so I have not used the "DallasTemp" library:

#include <OneWire.h>

// DS18S20 Temperature chip I/O
const int ONEWIRE_PIN = 9;
OneWire DS18S20(ONEWIRE_PIN);

// Adresses of my two thermometers
//     Can't make them const because the OneWire library doesn't take const. :(
byte InteriorThermometer[8] = { 0x28, 0x95, 0xB9, 0x1D, 0x03, 0x00, 0x00, 0xB9};
byte ExteriorThermometer[8] = { 0x28, 0xA9, 0x9E, 0x1D, 0x03, 0x00, 0x00, 0x80};

unsigned long lastTempConversionTime = 0;

void startThermometers()
{
  lastTempConversionTime = millis();
  DS18S20.reset();
  DS18S20.write(0xCC);      // Address all thermometers
  DS18S20.write(0x44);         // start conversion, no parasite power on at the end
}

float readThermometer(byte addr[8])
{
  byte data[9];
  float temperature_C;

  DS18S20.reset();
  DS18S20.select(addr);    
  DS18S20.write(0xBE);         // Read Scratchpad

  for (int i = 0; i < 9; i++) 
    data[i] = DS18S20.read();

  if (data[5] != 0xFF || data[7] != 0x10)
  {
    return 999.999;
  }

  if ( OneWire::crc8( data, 8) == data[8])
  { // CRC is valid
    int temperature = (data[1] << 8) + data[0];  // Two byte binary temperature in °C/16
    temperature_C = temperature / 16.0;
  }
  else
  {
    return 999.999;
  }

  return temperature_C;
}

Hello John,
Error compiling = no ref to setup or loop?

he just gave you the functions to read and start the thermometer, you do understand every sketch needs a setup and loop function....

Hi there,
That's what I thought, but it helps us newcomers if there was a bit of a clue where to put them.
Thanks