Я работаю над проектом, и мне нужно создать API.Я использую сокеты для связи между сервером (мое приложение) и клиентами (другие приложения используют мой API).
Этот проект не на C ++
Я пришел из Linux, и это мой первый проект, использующий библиотеки Windows, Visual Studio 2008 и DLL.
У меня есть связь, работающая между клиентом и сервером, но у меня есть некоторые, которые дублируются в обоих проектах.Я хотел бы создать библиотеку (вероятно, файл DLL), на которую могут ссылаться оба проекта, поэтому мне не нужно поддерживать дополнительный код.
Мне также нужно создать библиотеку с API, который мне нужно сделать доступным для моих клиентов.В функциях API, которые я хочу сделать общедоступными, есть вызовы этих вспомогательных функций, которые являются «дублированным кодом», я не хочу предоставлять эти функции моему клиенту, но я хочу, чтобы мой сервер мог использовать эти функции.Как я могу это сделать?
Я постараюсь уточнить на примере.Это то, с чего я начал.
Проект сервера:
int Server_GetPacket(SOCKET sd);
int ReceiveAll(SOCKET sd, char *buf, int len);
int VerifyLen(char *buf);
Проект клиента:
int Client_SendCommand(int command);
int Client_GetData(int command, char *buf, int len);
int ReceiveAll(SOCKET sd, char *buf, int len);
int VerifyLen(char *buf);
Это то, чем я хотел бы закончить:
//Server Project:
int Server_GetPacket(SOCKET sd);
// library with public and private types
// private API (not exposed to my client)
int ReceiveAll(SOCKET sd, char *buf, int len);
int VerifyLen(char *buf);
// public API (header file available for client)
int Client_SendCommand(int command);
int Client_GetData(int command, char *buf, int len);
Спасибо, любая помощь будет оценена.