惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Palo Alto Networks Blog
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
有赞技术团队
有赞技术团队
The GitHub Blog
The GitHub Blog
C
Cisco Blogs
B
Blog
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
Simon Willison's Weblog
Simon Willison's Weblog
T
Tenable Blog
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
WordPress大学
WordPress大学
月光博客
月光博客
Latest news
Latest news
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threat Research - Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
I
InfoQ
D
Darknet – Hacking Tools, Hacker News & Cyber Security
W
WeLiveSecurity
Hacker News - Newest:
Hacker News - Newest: "LLM"
酷 壳 – CoolShell
酷 壳 – CoolShell
U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
Google DeepMind News
Google DeepMind News
Apple Machine Learning Research
Apple Machine Learning Research
Attack and Defense Labs
Attack and Defense Labs
罗磊的独立博客
T
The Exploit Database - CXSecurity.com
I
Intezer
GbyAI
GbyAI
Jina AI
Jina AI
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Google Online Security Blog
Google Online Security Blog
Engineering at Meta
Engineering at Meta
D
Docker
Recent Commits to openclaw:main
Recent Commits to openclaw:main
小众软件
小众软件
云风的 BLOG
云风的 BLOG
爱范儿
爱范儿
Project Zero
Project Zero

博客园 - abraham

I want learn the programming web by C#.Who can give a simple step by step tutorial,please? Today begin new life of blog. I want learn the programming web by C#.Who can give a simple step by step tutorial,please? Today begin new life of blog. create dll formt lib with cpp funcs or c just funcs by hand. pub class into dll in dos by hand step by step. put class into dll by using vc6.0 How To Read a Big Txt File into CEdit and write it as save!. Create a Dlg's Thread and use it,this can use dlg handle. Create a Thread and Use it. Here is a reason why can not log a SQL CString How to Kill Blanks in a CString,but how to kill Chinese Blanks i can not solve. How to get a Chinese character's PinYin automaticly? PE format is very important,so learn it. static/register/atuo/extern/volatile/const STL is very important,so we learn. print a bmp 2 Create COM step by step 2. Create com step by step.1
create a dll by hand.
abraham · 2004-04-07 · via 博客园 - abraham

i have search for many time about this aspect,but there is little about it,not let us share my work about do it.
the theory about dll is simple ,but to do it by hand it 's not so easy.
1 first,the file:
select.c
BOOL APIENTRY DllMain(HANDLE hInst, DWORD ul_reason_being_called, LPVOID lpReserved)
{
    return 1;
        UNREFERENCED_PARAMETER(hInst);
        UNREFERENCED_PARAMETER(ul_reason_being_called);
        UNREFERENCED_PARAMETER(lpReserved);
}

void msg(){
MessageBox(NULL,"OK","ok",MB_OK);
}
2:must give def file to get lib and then can create dll.
select.def
LIBRARY   Select

EXPORTS
        msg                 @2


3:compile,if you use cl directly ,error:
C:\DLL>cl select.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

select.c
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:select.exe
select.obj
LINK : fatal error LNK1561: entry point must be defined
4:must use some option:
C:\DLL>cl -c -W3 -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1 -D_WINNT -D
_WIN32_WINNT=0x0400 -D_WIN32_IE=0x0300 -DWINVER=0x0400 -DWIN32  -D_WIN32 -D_MT -
D_DLL -MD -Z7 -Od select.c
then will create some file:
5:then must create lib use lib:
C:\DLL>lib -machine:i386      -def:select.def      select.obj        -out:select
.lib
Microsoft (R) Library Manager Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

   Creating library select.lib and object select.exp

6:now can link and create dll.
C:\DLL>link -debug:full -debugtype:cv /NODEFAULTLIB /INCREMENTAL:NO /PDB:NONE /R
ELEASE /NOLOGO -entry:_DllMainCRTStartup@12 -dll      -base:0x1C000000   -out:se
lect.dll    select.exp select.obj msvcrt.lib oldnames.lib kernel32.lib  ws2_32.l
ib mswsock.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib
7:now get select.dll file,can use it in c file,file is:
#include "windows.h"
void callDll();
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  // TODO: Place code here.
  callDll();
    ::MessageBox(NULL,"ssssss","ssssssssss",0);
 return 0;
}
int showInfo(){
::MessageBox(NULL,"info","info",0);
return 99;
}
void callDll(){
typedef void (WINAPI * func)();
 HINSTANCE hmod;
 hmod = ::LoadLibrary ("select.dll");
 if(hmod==NULL)
 {
  MessageBox(NULL,"Fail","Fail",MB_OK);
 }
 func lpproc;
 lpproc = (func)GetProcAddress (hmod,"msg");
 if(lpproc!=(func)NULL)
  (*lpproc)();
  else{
  MessageBox(NULL,"can not find func","can not find func",MB_OK);
  }
 
 FreeLibrary(hmod);
}

8:compile it and run:
cl useDll.cpp user32.lib
9:OK!
addition:
so to use a dll is not very easy by hand.please enjoy it.!