hey guys i m trying to create a dll of a function so that i can use it in my c# program ..but on running the program an error occurs of
Debug error
runtime check failiure no 2 : stack around variable pth was corrupted
any suggestions what am i doing wrong here is the code
Code:// code1.cpp : Defines the entry point for the DLL application. // #include "stdafx.h" //#include <iostream.h> #include <winnt.h> #include <Winbase.h> #include <conio.h> #include<string.h> #include<malloc.h> #ifdef _MANAGED #pragma managed(push, off) #endif BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } extern "C" { __declspec(dllexport) bool WriteSector(char* path,int sector,int index,int code) { char* buff = (char*)malloc (512); HANDLE h; DWORD br; char pth[10] ="\\\\.\\"; strcat(pth,path); h=CreateFileA(pth,GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL); SetFilePointer(h,(sector*512),NULL,FILE_BEGIN); ReadFile(h,buff,512,&br,NULL); if(code==1) buff[index]=64; if(code==2) buff[index]=32; if(code==3) buff[index]=16; DWORD bytesN=0; SetFilePointer(h,512*sector,NULL,FILE_BEGIN); bool g=WriteFile(h,buff,512,&bytesN,NULL); CloseHandle(h); return g; } //int _tmain(int argc, TCHAR* argv[]) } #ifdef _MANAGED #pragma managed(pop) #endif
this is the signature i am using for c#
any suggestion what iam doin wrong plzCode:[DllImport("code1.dll")] public static extern bool WriteSector(String path, int sector, int index, int code);




Reply With Quote
