Well, you shouldn't be contacting the server even on every launch of the DLL / App / Tool / Whatever. That's why TA_IsGenuineEx() exists -- namely, to contact the server every X days with a grace period of Y days.
See: https://wyday.com/limelm/help/using-turboactivate-with-c-plus-plus/
Regarding when to do this checking, it depends on your DLL design. Presumably a customer will be using your DLL in an app, and that app will be running for some period of time.
So, basically, use the C example as-is. Namely, do the bulk of the licensing stuff during the "init" call to your dll (presumably you have to set stuff up once before other calls are made).