首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
C#用winapi调用GetCurrentDirectory
2024-10-29
C# 笔记 获取程序当前目录
在C#中,我们有以下几种方式获取程序当前目录: Console.WriteLine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); Console.WriteLine(System.AppDomain.CurrentDomain.BaseDirectory); Console.WriteLine(System.Environment.CurrentDirectory); Console.Wri
vc调用BCB的dll 参数传递 报错
可能原因: 调用方式约定不一致. 函数调用约定如下: 1. __cdecl:C 和 C++ 程序的缺省调用规范. 2. __stdcall:标准调用约定(即WINAPI调用约定),也就是pascal调用约定. 如果VC调用时,调用的约定方式和delphi的dll中函数约定方式不一致,就会出问题. 实例: BCB中有一函数: extern "C" DLL_API int __stdcall CP_Test(int i); 在VC中需要动态调用LoadLibrary,定义函数指针为: ty
php黑魔法之解析问题
code如下: <?php $a=$_GET[a]; $b=is_file($a); var_dump($b); ?> 可以看到1.ph< 返回了true 这样不就可以绕过这个的过滤了? 因为我看英文看不怎么懂.. 那些什么翻译 翻译来又太蛋疼了 一大堆翻译错误的. 以下是我的理解 可能有错 也请大牛来指导指导了. 因为当PHP解析器解析这些函数的时候 会调用winapi 调用了Winapi的函数Findfirstfile 然后<字符被转换成了* 成了通配符. 所以导致1.ph&l
dll 导出函数名的那些事
dll 导出函数名的那些事 关键字: VC++ DLL 导出函数 经常使用VC6的Dependency或者是Depends工具查看DLL导出函数的名字,会发现有DLL导出函数的名字有时大不相同,导致不同的原因大多是和编译DLL时候指定DLL导出函数的界定符有关系. VC++支持两种语言:即C/C++,这也是造成DLL导出函数差异的根源 我们用VS2008新建个DLL工程,工程名为"TestDLL" 把默认的源文件后缀 .CPP改为.C(C文件) 输入测试代码如下: 01 int _
c++文件读取(一)---输入类使用和查找当前程序路径
鉴于公司人员流动大,设计一个小的日志定位器,首先要读取日志文件 用输入输出流类操作文件比c的stdio更安全和容易,当然任何此类观点都是对大牛除外 首先是查找当前文件路径,如果用GetCurrentDirectory函数的话 问题一:记得不能在打开文件之后,因为这个是当前进程当前目录,而不是进程的镜像文件(.exe)路径,怎么理解呢 假如exe放在:d:\用户目录\我的文档\visual studio 2012\Projects\file,调用GetCurrentDirectory之前如果操作
vc++基础班[24]---系统各种路径信息的获取
vc++基础班[24]---系统各种路径信息的获取 ------------------------------------------ Begin ---------------------------------------- ①.Windows.System32.temp 等目录的获取: TCHAR szPath[MAX_PATH] = {0}; GetSystemDirectory(szPath, MAX_PATH); //C:\WINDOWS\system32 GetWindows
转:Delphi中使用比较少的一些语法
http://www.cnblogs.com/Murphieston/p/5577836.html 本文是为了加强记忆而写,这里写的大多数内容都是在编程的日常工作中使用频率不高的东西,但是又十分重要. ---Murphy ,构造和析构函数: a,构造函数: 一般基于TComponent组件的派生类,都应该使用overload关键字进行继承,Delphi中的对象没有什么复合的概念,在设计时,从简便的角度出发 一般都设计为耦合性较强,但是使用简单的派生类即可.构造函数不是必写的,除非“复合”这样的对
DLL断点调试
一般来说调试DLL是把DLL工程和exe工程放到一个解决方案里.如果不放到一个解决方案里,那两者的输出目录要一致,属性-连接器-常规-输出目录.保证dll,dll的pdb,exe,exe的pdb在一个文件夹内. dll 导出函数名的那些事 关键字: VC++ DLL 导出函数 经常使用VC6的Dependency查看DLL导出函数的名字,会发现有DLL导出函数的名字有时大不相同,导致不同的原因大多是和编译DLL时候指定DLL导出函数的界定符有关系. VC++支持两种语言:即C/C++,这也是
C++动态链接库
1.动态链接库概述: 动态链接库通常都不能直接运行,也不能接受消息:只有在其他模块调用动态链接库中的函数时,它才发挥作用. Windows API中所有的函数都包含在动态链接库中. 动态链接库分静态库和动态库. 2.导出函数的声明方式 1)强制用C语言方式进行修饰,且用C的默认调用约定,即__cdecl方式.这种方式编译产生的DLL中有一个导出函数:add,不加任何修饰.(这种方式最好) extern "C" int __declspec(dllexport) add(); 2)强制用
COM和.NET的互操作
组件对象模型的基本知识 基于构件的软件开发日益流行,这里我吧自己在学校时整理的关于COM的一些东西献给大家,供初学者参考.一.组件(COM),是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术.在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统.由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制:可以在多个应用系统中重复利用同一个组件:可以方便的将应用系统扩展到
Dll 导出函数那些破事
经常使用VC6的Dependency查看DLL导出函数的名字,会发现有DLL导出函数的名字有时大不相同,导致不同的原因大多是和编译DLL时候指定DLL导出函数的界定符有关系. VC++支持两种语言:即C/C++,这也是造成DLL导出函数差异的根源 我们用VS2008新建个DLL工程,工程名为“TestDLL” 把默认的源文件后缀 .CPP改为.C(C文件) 输入测试代码如下: 01 int _stdcall MyFunction(int iVariant) 02 { 03 return 0; 0
C++多线程1.createthread
C++ 多线程知识1.多线程入门 CreateThread 20131021 1.介绍WinAPI中的CreateThread 函数原型: HANDLE WINAPI CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_STACK_ROUTLINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, L
高级C代码的汇编分析
在windows上,常用的函数调用方式有: Pascal方式,WINAPI(_stdcall)方式 和C方式(_cdecl) _cdecl调用规则: 1,参数从右到左入堆栈 2,在函数返回后,调用者要负责清除堆栈 所以这种调用常会生成较大的可执行文件. _stdcall又称为WINAPI调用方式,规则: 1,参数从右向左入堆栈 2,被调用的函数在返回前自行清理堆栈 所以这种调用会生成比cdecl小的代码 Pascal调用方式,主要用在WIN16函数库中,现在基本不用 规则: 1,参数从左向右入堆
VC6.0实用小技巧
VC6.0的若干实用小技巧 .检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}.方括号[].圆括号()和尖括号<>)前面,键入快捷键 “Ctrl+]”.如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一 声警告声. .查看一个宏(或变量.函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键 菜单中的Go To Defition Of …),如果没有建立Browse files
WSL2和CUDA踩坑
WSL2和CUDA踩坑 WSL2里可以直接跑cuda了, 目前(2020年10月) 功能可用, 但bug很多, 不够完善 1. 安装 主要参考: https://docs.nvidia.com/cuda/wsl-user-guide/index.html 注意: 1. 目前需要加入windows体验计划, 并选dev通道, 更新到开发版的windows 2. 开启hyper-v/wsl/虚拟化平台等windows的功能并安好w
C#进阶——记一次USB HID的各种坑(x86,x64,win10,win7)
一.简叙 写工控上位机的搬砖人,难免会遇到USB通讯,在一个项目中,我写的上位机使用USB HID协议和STM32通讯传输数据,从零大概花了几天找例程,找资料,最后是各种搬砖修补,终于出来了一个出版DOME,能和下位机实时通讯了. HID通讯方式其实很常见,像鼠标.键盘等待外设都是这种方式,我也不知道为啥要用这种方式,我当初用它是因为其传输速率比串口快(忆当初下位机还没开发出网口的苦日子),再则其是免驱(win内置驱动,直接调API即可). HID识别设备主要通过设备的PID(厂商ID)和VID
.NET 6学习笔记(3)——在Windows Service中托管ASP.NET Core并指定端口
在上一篇<.NET 6学习笔记(2)--通过Worker Service创建Windows Service>中,我们讨论了.NET Core 3.1或更新版本如何创建Windows Service.本篇我们将在此基础上,托管ASP.NET Core程序并指定端口.首先让我们创建一个ASP.NET Core Web App,当然Web Api类型也是可以的.通过NuGet来安装Microsoft.Extensions.Hosting.WindowsServices.该库提供了必要的UseWind
黑马毕向东Java基础知识总结
Java基础知识总结(超级经典) 转自:百度文库 黑马毕向东JAVA基础总结笔记 侵删! 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. ------------------------------------
《果壳中的C# C# 5.0 权威指南》 - 学习笔记
<果壳中的C# C# 5.0 权威指南> ========== ========== ==========[作者] (美) Joseph Albahari (美) Ben Albahari[译者] (中) 陈昇 管学理 曾少宁 杨庆川[出版] 中国水利水电出版社[版次] 2013年08月 第1版[印次] 2013年08月 第1次 印刷[定价] 118.00元========== ========== ========== [前言] C# 5.0 是微软旗舰编程语言的第4次重大升级. C# 5.
C#调用WinAPI及窗口过程
C#调用WINAPI及Windows窗口消息的发与送 最近在做一个餐饮项目(C#Winform),其中有一块是做点菜宝接口的对接,点菜宝的厂商提供了一个WX.exe的驱动程序,这个驱动程序无直接打开,只能通过自己的编写的接口程序调用和关闭,当时提供的例子一个VB和Delphi的用例,可是这块项目组的人都没有接触过,后来通过厂商了解到接口程序的开发原理是基于文本+消息机制的. 文本是说要用到文本文件的读和写, 消息是说要用到 Windows 窗口消息的发与收. 了解到这些后,我们就要去调用WinA
Delphi调用WINAPI时到底应该是指针还是结构体(注意是Delphi变量本身就是指针)
看MSDN,GetWindowRect的说明如下: BOOL WINAPI GetWindowRect( _In_ HWND hWnd, _Out_ LPRECT lpRect // 注意,没*号指针 ); BOOL WINAPI GetWindowPlacement( _In_ HWND hWnd, _Inout_ WINDOWPLACEMENT *lpwndpl // 注意,有*号指针,这里可能已经是双重指针 ); 但是实际调用直接传递Rect结构体,而不是
热门专题
User agent唯一
qt 黑马 myTread
qstring截取一段字符串
redis 过期后回调
shell 启动微服务
配置profile 怎么生效
ida pro命令窗口没了
sql Server 2012 差异备份及恢复
iris web框架无法加载静态文件
navicat premium 11 mac 激活
java命名 server和service
微信小程序get 跳转到其他页面登录后回来
笛卡尔积hive跑不动
后缀自动机SAM的应用
border-radius 阴影
使用 GAN 实现手写数字识别图片生成
unity中的角色如何移动视角
marlin温度失控
HTML5 canvas指纹
搭建一个http服务器,怎么从服务器下载文件