Во флэше, видимо так должно быть:

Код:
function readCardID():String{
var result:String = DLL485.call("string","ReadID");
return result;
}
В длл типа такого :

Код:
extern "C" __dllspec(dllexport) char* ReadID() /*оберточная функция для сишной ReadIDaui(id)*/
{
unsigned char id[8];
int result = ReadIDaui(id);// эта функция в длл у вас уже есть, как я понял? или ее надо импортировать.
if(!result)
{
// формируем строку из массива и возвращаем ее return'ом
}else
{
// формируем строку с собщекнием об ошибке и возвращаем ее return'ом
}
}
Формировать строку из массива можно пробежавшись в цикле по массиву. На каждой итерации конвертировать элемент в строку, строку конкатенировать (прибавлять в конец) к строке-будущему ответу. см _itoa_s() и strcat_s()
Так цинк вроде с ком-портом работать может сам?
Добавлено через 41 минуту
Вот пример конвертации массива в строку:

Код:
....
// типа у нас есть заполненный массив из одно- двух- или трехзначных чисел
int id[8] = {255,2,333,4,52,6,7,8};
char* stringFROMarray = getStringFromArray(id);
printf(stringFROMarray);
....
char* getStringFromArray(int* id)
{
// резервируем память под строку
// 8 по три байта + 8 запятых плюс 0 в кнце = всего 33 байта.
char* buf = (char*)calloc(sizeof(char),8*3+8+1);
// буфер под конвертацию одного элемента массива
char ibuf[4];
for(int i=0; i<8;i++)
{
_itoa_s(id[i],ibuf,4,10);
strcat_s(buf,33,ibuf);
strcat_s(buf,33,",");
}
return buf;
}