我有一个用C编写的DLL,我必须使用它。
没关系,但有一个地方我出错了。
int getHourTime()
{
struct tm *psttm;
time_t timet = //is initialzed correctly
psttm = localtime(&timet);
int nHour = psttm->tm_hour;
return nHour;
}
我用DLLImport把它叫做C。
当进入行:“psttm->tm_hour”时,我得到一个错误(throw),该错误“试图读取或写入受保护的内存”。我知道这是因为它返回一个指向structTM内部位置的指针,但是我如何解决这个问题呢?
谢谢
最佳答案
问题是因为下一行:
结构tm*psttm;
它没有初始化为空。
关于c# - 互操作保护内存验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2020715/