C#如何编写有像VC中dllmain方法的DLL文件

问题描述

网上说,DLL建议用vc编写,因为c#编写的Dll没有dllmain方法,不能自动执行。用vc编写的DLL代码就可以直接在内存中运行了请问是否如此?有哪位能帮一下忙,给小弟一个C#编写的DLL实例,使得它注入到explorer.exe进程后可以执行.谢谢!参考dll代码:#include<windows.h>#include<tchar.h>BOOLWINAPIDllMain(HINSTANCEhinstDLL,DWORDfdwReason,LPVOIDlpvReserved){switch(fdwReason){caseDLL_PROCESS_ATTACH:{MessageBox(NULL,_T("DLL已进入目标进程。"),_T("信息"),MB_ICONINFORMATION);}break;caseDLL_PROCESS_DETACH:{MessageBox(NULL,_T("DLL已从目标进程卸载。"),_T("信息"),MB_ICONINFORMATION);}break;}returnTRUE;}

解决方案

解决方案二:
是的。c#编写的dll因为没有向c,c++写的dll那样的入口方法,所以无法自动执行。但你可以使用c#来调用c,c++写的dll来变通的做到。
解决方案三:
引用楼主tx4326668的帖子:

网上说,DLL建议用vc编写,因为c#编写的Dll没有dllmain方法,不能自动执行。用vc编写的DLL代码就可以直接在内存中运行了请问是否如此?有哪位能帮一下忙,给小弟一个C#编写的DLL实例,使得它注入到explorer.exe进程后可以执行.谢谢!参考dll代码:#include<windows.h>#include<tchar.h>BOOLWINAPIDllMain(HINSTANCEhinstDLL,DWORDfdwReason,LPVOIDlpvReserved){switch(fdw…

当然可以,不过没DllMain而已
解决方案四:
各位大哥有没朋成功点的例子呢?

时间: 2024-10-27 11:22:37

C#如何编写有像VC中dllmain方法的DLL文件的相关文章

图片-Windows8 VC中GetShortPathName()获取去音乐文件的最短路径

问题描述 Windows8 VC中GetShortPathName()获取去音乐文件的最短路径 这种的获取的最短路径用mciSendString打不开 把中间那个-改后就能打开了 为什么啊???关键代码如下 TCHAR shortpath[MAX_PATH]; GetShortPathName(szFileshortpathsizeof(shortpath)); MessageBox(hwndshortpathszFileMB_OK); TCHAR cmd[MAX_PATH+6]; wsprin

c++读取csv文件并赋值-vc++中,怎么读取csv文件?

问题描述 vc++中,怎么读取csv文件? 如题,csv文件里的内容如下: 1,2 3,4 5,6 7,8 ... 我想知道,怎么可以读取这个csv文件,然后将这两竖排数分别存到两个数组中 还有,还要根据这个csv文件里的数据的个数,来定义数组的大小 解决方案 一个VC++读取csv文件的函数VC++中对文件的写入和读取VC++中对文件的写入和读取 解决方案二: 可以用ifstream读取,然后用sscanf格式化提取 分别存到两个数组可以借助vector来实现 #include <iostre

浅谈VC中预编译的头文件放那里的问题分析_C 语言

用C++写程序,肯定要用预编译头文件,就是那个stdafx.h.不过我一直以为只要在.cpp文件中包含stdafx.h 就使用了预编译头文件,其实不对.在VC++中,预编译头文件是指放到stdafx.h中的头文件才会有效果.如下: file: stdafx.h 复制代码 代码如下: // stdafx.h : include file for standard system include files,// or project specific include files that are u

第三方dll文件-Java中利用jawin调用dll文件,invoke的参数问题

问题描述 Java中利用jawin调用dll文件,invoke的参数问题 各位大神: dll中的被调用方法如下: long WINAPI AutoOpenComPort(long* Port, unsigned char *ComAdr, unsigned char Baud,long *FrmHandle); 其中: Port:输出变量, ComAdr:输入/输出变量 Baud:输入变量 FrmHandle:输出变量 请问它的 msgBox.invoke(instructions, stack

在SSIS中使用自定义的DLL文件

原文:在SSIS中使用自定义的DLL文件步骤1.开发dll(需要签名) using System;using System.Collections.Generic;using System.Text;using System.Xml;using System.Xml.Schema;namespace ETLXmlParser{    public class ETLXmlParser    {        private static bool isValid = true;        p

使用ASP中的VB ActiveX.dll文件

active|activex 没有人会在没有必要的情况下采用更加麻烦的方法来工作,除非是没有选择的余地.所以如果我要告诉你有一种简单的技术可以使你的ASP开发更加快速,并且更加高效率,你一定对此特别感兴趣.这一方法将从你的ASP页中的绝大部分business logic转移到一个Visual Basic ActiveX .dll以达到提高整个网页的性能. 使用ActiveX .dll的原因 在Visual Basic中建立一个.dll文件实际上是一个ActiveX对象.这种对象可以采用微软的组件

VBScript中的CreateObject函数调用自编应用程序对象中的方法

问题描述 最近做一个项目,采用C#语言编写,希望支持用户在软件界面上编写VBScript代码来调用软件的一些方法,实现第三方人员对软件的外部调用.例如,VBScript中调用CreateObject函数对Excel表格进行操作:SetExcelSheet=CreateObject("Excel.Sheet")'在表格的第一个单元中写些文本ExcelSheet.Cells(1,1).Value="ThisiscolumnA,row1"'将该表格保存到C:test.do

VC中不同类型DLL及区别

1. DLL的概念可以向程序提供一些函数.变量或类. 静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式.静态链接库把最后的指令都包含在最终生成的EXE文件中了:动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以"动态"地引用和卸载这个与EXE独立的DLL文件.(2) 静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库. DLL分类:1.Non-MFC DLL(非MFC动态库):不采用MFC类库结构,

Win7中注册表修复exe文件教程

  1.首先,需要打开win7系统的注册表编辑器窗口,同时按下win7电脑键盘上的win+R快捷键打开电脑的运行窗口,在打开的运行窗口中,输入regedit并单击回车,就可以打开注册表编辑器窗口了. 2.在打开的注册表编辑器窗口中,依次点击展开左侧菜单中的HKEY_CLASSES_ROOTexefileshellopencommand,之后在窗口的右边看到默认的数值,双击点击打开,然后把数值改为["%1" %*],数值确认以后就直接保存,然后关闭窗口,最后重新启动电脑就可以了. 以上就