Onlangs heb ik geprobeert een dll te schrijven in C++ om enkele protocol decodaties te doen. Deze moet uiteindelijk gaan communiceren met labview.. Nu heb ik het volgende probleem.
DLL header (uiteraard met __declspec):
DLL functie:
Main code:
De laatste variant crash met een exceptie in dbgheap.c (_CrtIsValidHeapPointer)
Wat doe ik nu verkeerd? Ik heb vanalles geprobeert maar kom er echt niet ui. (BTW. bij beide aanroepen wordt er goed afgedrukt, het gaat mis bij het retourneren uit de functie.)
DLL header (uiteraard met __declspec):
code:
1
| void drukAf(const std::string message); |
DLL functie:
code:
1
2
3
4
| void drukAf(const std::string message)
{
printf("%s", message.c_str());
} |
Main code:
code:
1
2
3
| std::string test = "BLAAT";
drukAf(test); // OK
drukAf("BLAAT"); // Crash! |
De laatste variant crash met een exceptie in dbgheap.c (_CrtIsValidHeapPointer)
Wat doe ik nu verkeerd? Ik heb vanalles geprobeert maar kom er echt niet ui. (BTW. bij beide aanroepen wordt er goed afgedrukt, het gaat mis bij het retourneren uit de functie.)