-
March 18th, 2009, 09:25 AM
#1
problem in creating a dll
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#
Code:
[DllImport("code1.dll")]
public static extern bool WriteSector(String path, int sector, int index, int code);
any suggestion what iam doin wrong plz
-
March 18th, 2009, 09:40 AM
#2
Re: problem in creating a dll
Code:
char pth[10] ="\\\\.\\";
strcat(pth,path);
pth is only 10 long... how long is path ?
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|