Support Board
Date/Time: Mon, 25 Nov 2024 09:19:10 +0000
Post From: TCP/IP Server in custom study
[2021-06-02 07:36:39] |
User310645 - Posts: 49 |
It will be something to do with the reference. Its c++ so MyData.sc needs to be initialised to something. You could make it more c++ like class Server { public: Server(SCStudyInterfaceRef sc, int debug) : sc(sc), debug(debug) {} void Start() { hThreadArray = CreateThread( NULL, // default security attributes 0, // use default stack size startThread, // thread function name (void*)this, // argument to thread function 0, // use default creation flags &dwThreadIdArray); // returns the thread identifier } private: SCStudyInterfaceRef sc; int debug; HANDLE hThreadArray; DWORD dwThreadIdArray; static DWORD WINAPI startThread(void* param) { Server* data = reinterpret_cast<Server*>(param); return data->run(); } DWORD run() { // do thread stuff here sc.AddMessageToLog("started thread", debug); return 0; } }; Server TcpServer(sc, 1); TcpServer.Start(); or if you wanted to keep it similar to what you have you could probably change the reference to a pointer typedef s_sc* SCPtr; typedef struct MyData { SCPtr sc; int debug; } SERVER_SOCKET_MYDATA, * PMYDATA; pDataArray->sc = &sc Date Time Of Last Edit: 2021-06-02 08:01:37
|