PD uses the pthread library, but with MVC this can be really annoying. The project pthread-win32 offers a dynamic version of the library for Windows but no static version. If you compile the static library, you have to change the code because there are linking problems with MVC. I think it would be better to use Windows thread system. The main problem comes from the file "d_soundfile.c". I made a small wrapper (
https://github.com/pierreguillot/thread) and if you're interested I can try to integrate this in PD. I have several questions before. Should I use a wrapper for pthread and "WinThread" or should I make a wrapper only for WinThread that allows to use the pthread function prototypes. I already have the two solutions. I don't know if the sys_lock/sys_unlock/sys_trylock functions (in m_sched.c) are really necessary in a context like libpd. The problem is that we can't have a static initializer for Windows critical sections, so we must use something like void sys_lock_init and sys_lock_destroy. For the moment, in my project I use the preprocessor definition THREAD_LOCKING=0 to avoid this part of the code but I think it would be better to enable this feature, in case someone uses it in an external.