Может быть проще?!
uint8_t hex(char ch) {
uint8_t r = (ch > 57) ? (ch - 55) : (ch - 48);
return r & 0x0F;
}
int to_byte_array(const char *in, size_t in_size, uint8_t *out) {
int count = 0;
if (in_size % 2) {
while (*in && out) {
*out = hex(*in++);
if (!*in)
return count;
*out = (*out << 4) | hex(*in++);
*out++;
count++;
}
return count;
} else {
while (*in && out) {
*out++ = (hex(*in++) << 4) | hex(*in++);
count++;
}
return count;
}
}
int main() {
char hex_in[] = "deadbeef10203040b00b1e50";
uint8_t out[32];
int res = to_byte_array(hex_in, sizeof(hex_in) - 1, out);
for (size_t i = 0; i < res; i++)
printf("%02x ", out[i]);
printf("\n");
system("pause");
return 0;
}
Можно просто создать проект библиотеки классов, добавить файл ресурсов там и затем относиться к тому блоку для общих ресурсов.
Некоторый полезный совет относительно того, как управлять такой ситуацией, доступен здесь:
Я использовал это решение прежде для совместного использования assembley info.cs файл через все проекты в решении, я предположил бы, что то же будет работать fro файл ресурсов.
Создайте связанный файл к каждому отдельному проекту/библиотеке классов. Будет только одна копия, и каждый проект будет иметь ссылку на код через связанный файл во время компиляции. Это - очень изящное решение решить совместно использованный не общедоступные ресурсы, не копируя код.
<Compile Include="path to shared file usually relative">
<Link>filename for Visual Studio To Dispaly.resx</Link>
</Compile>
добавьте, что код complile группе объекта csproj файла затем заменяет пути Вашими фактическими путями к resx файлам, и необходимо смочь открыть их.
После того как Вы сделали это для одного файла проекта, необходимо смочь использовать копию и вставить связанный файл к другим проектам, не имея необходимость взламывать csproj.