我有一个用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/

10-11 21:11