Hi David,
The most common cause is that the extension entry point is being name mangled for some reason. If you check the exports for your DLL they should look something like:
C:\Program Files (x86)\Programmer's Notepad> dumpbin /exports pypn.dll
Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file pypn.dll
File Type: DLL
Section contains the following exports for pypn.dll
00000000 characteristics
4AEF5377 time date stamp Mon Nov 02 21:47:35 2009
0.00 version
1 ordinal base
6 number of functions
6 number of names
ordinal hint RVA name
4 0 00002770 initdebug
5 1 00003F60 initpn
6 2 00035D90 initscintilla
1 3 00035DF0 pn_exit_extension
2 4 00035DC0 pn_get_extension_info
3 5 00035E50 pn_init_extension
Summary
7000 .data
15000 .rdata
7000 .reloc
1000 .rsrc
43000 .text
Ignore the initdebug, initpn, and initscintilla functions as these are Python-related exports, the ones you should see are the pn_* ones. If your names are mangled make sure your .def file is properly configured in the project.
If you need any more help feel free to mail the project to me or upload somewhere for me to take a look (github, bitbucket etc.).